Уроки по Python. Делаем Paint на Питоне
HTML-код
- Опубликовано: 5 окт 2024
- В этом видео вы узнаете как сделать графический редактор Paint на языке программирования python!
Ставь лайк, если тебе понравилось видео :)
►► Подписывайся на наш канал:www.youtube.co....
РЕКОМЕНДОВАННЫЕ ВИДЕО ►
----------------------------------------------------
"Уроки по Python. Как сделать простую игру кликер БОМБА на Питоне" - • Уроки по Python. Как с...
"Уроки по Python. Твой первый проект на языке Питон!" - • Уроки по Python. Твой ...
"Уроки по Python. Как сделать калькулятор на языке Питон" - • Уроки по Python. Как с...
Где нас можно найти ►
--------------------------------------
★ Наш сайт: itgen.io
★ Skype: itgen.by (Айтигеник)
★ Вконтакте: itgenio...
★ Фейсбук: / itgen.io
Популярные плейлисты ►
-------------------------------------------
● Игры на Scratch: • Уроки по Scratch. Как ... .
● Игры и проекты на Python: • Уроки по Python. Твой ... .
● Javascript для начинающих: • Уроки по JavaScript. К... .
● Уроки по Фотошопу: • Уроки по Photoshop. Ри... .
● 3D-моделирование: • Уроки по 3D. Делаем 3D... .
● Советы начинающему видеоблогеру: • Как создать канал на Y... .
Очень круто! Я начинающий питонист...и уже обожаю этот ЯП! А такие уроки полезны очень! Практика! Спасибо!
2:51 НАШУ МЫШЬ ! Так забавно и мило)
Анастасия, спасибо вам огромное! Ваш видеоролик очень помог в создании программы.
в общем видео как для начинающих так себе .многого не объясняется.лучше было бы объяснить строчка за строчкой значение абсолютно каждой команды.каждой запятой. почему так а не по другому.
она не говорила что это для начинающих)
@@gregplittjunior8313 не ну хотя бы после написания def можно было обяснить зачем она
@@nihony2687 она 100 раз сказала что мы создаём ФУНКЦИЮ
если все разжевывать, в чем тогда обучение? это как репетитор который за тебя всю домашку делает
(При быстром движении мышкой остается расстояние между овалами, если знаете в чем проблема, отпишите)Весь код:
from tkinter import *
canvas_width = 700
canvas_height = 500
brush_size = 3
color = "black"
"""Функция для рисования"""
def paint(event):
global brush_size
global color
x1 = event.x - brush_size
x2 = event.x + brush_size
y1 = event.y - brush_size
y2 = event.y + brush_size
w.create_oval(x1, y1, x2, y2,
fill=color,
outline=color)
"""
Функция для изменения размера кисти
"""
def brush_size_change(new_size):
global brush_size
brush_size = new_size
"""Функция для изменения цвета кисти"""
def color_change(new_color):
global color
color = new_color # Изменение цвета
"""
Создание окна и его название
"""
root = Tk()
root.title("Paint")
"""
Создание фона окна
"""
w = Canvas(root, width=canvas_width,
height=canvas_height, bg="white")
"""
Назначение кнопки для рисования
"""
w.bind("", paint)
col = Label(root, text="Цвет кисти")
col.grid(row=0, column=0)
size = Label(root, text="Размер кисти")
size.grid(row=8, column=0)
"""
Кнопки изменяющие размер кисти.
"""
ten_btn = Button(text="Размер 10", width=8, command=lambda: brush_size_change(10))
five_btn = Button(text="Размер 5", width=8, command=lambda: brush_size_change(5))
two_btn = Button(text="Размер 3", width=8, command=lambda: brush_size_change(3))
fiveten_btn = Button(text="Размер 15", width=8, command=lambda: brush_size_change(15))
"""
Кнопки изменяющие цвет кисти
"""
black_btn = Button(text="Черный", width=10, command=lambda: color_change("black"))
red_btn = Button(text="Красный", width=10, command=lambda: color_change("red")) # Кнопка
green_btn = Button(text="Зеленый", width=10, command=lambda: color_change("green"))
white_btn = Button(text="Ластик", width=10, command=lambda: color_change("white"))
clear_btn = Button(text="Удалить всё", width=10, command=lambda: w.delete("all"))
w.grid(row=2, column=0,
columnspan=7, padx=5,
pady=5, sticky=E + W + S + N)
w.columnconfigure(6, weight=1)
w.rowconfigure(2, weight=1)
"""
Расположение кнопок
"""
two_btn.grid(row=8, column=1)
five_btn.grid(row=8, column=2)
ten_btn.grid(row=8, column=3)
fiveten_btn.grid(row=8, column=4)
clear_btn.grid(row=0, column=5)
white_btn.grid(row=0, column=4)
green_btn.grid(row=0, column=3)
black_btn.grid(row=0, column=2)
red_btn.grid(row=0, column=1)
root.mainloop()
Cpasibo
(Недостаток производительности) Не успевает, когда мышь слишком быстро. Мышь движется, пока еще нет проверки.
спасибо
добавь вместо c.create_oval(x1, y1, x2, y2,
fill=color, outline=color) вот это:
brush_size = 0.05
color = 'black'
points = []
points.append((x1, y1))
if len(points) > 2:
c.create_line(points[-3:], fill=color, width=brush_size, smooth=1)
@@ЛюдмилаКривошеева-н4е большое спасибо)
Интересно ^_^
Здраствуйте, очень понравился ваш гайд, все получилось, но дайте пожалуйста идею как еще создать кнопку для сохранения рисунка в формате PNG. Буду очень благодарен.
для этого нужно качнуть Pillow(PIL) вроде.
@@knifeplayxp1546 да
Впервые вижу девушку которая делает уроки по программированию)
Она включила камеру?
а вдруг это мужик
@@Mallow577 нет, подросток
@@SashaGun_GD нет Женщина
22.55 зашло словечко))
Чтоб исправить баг когда у вас рисуется точки вместо прямой линии. В самом верху создайте список "points" вот так:
points = []
Далее в вашу функцию "paint" в низу функции вставьте этот код:
points.append((x1, y1))
if len(points) > 2:
w.create_line(points[-3:],
fill = color, width = brush_size,
smooth = 1)
И последние после того как вы забиндили рисование по нажатию кнопки после бинда вставьте:
w.bind('', lambda e: points.clear())
P.s вставьте после этого бинда w.bind('', lambda e: points.clear())
И должно сработать
спасибо вам большое, у вас очень приятный голос
Обажаю вашу школу ^_^
Спасибо большое, очень интересный урок!
Спасибо за урок!
Чтоза атрибут sticky у метода grid и что за E W N и S? У меня из-за них все рушится, говорит что нет таких переменных
Привет! Почему может не работать увеличение размера кистей? (23,10 мин.) five_btn = Button(text = "5", width = 10, command = lambda: brish_size_change(5)) five_btn.grid(row = 1, column = 3)
Я конечно не англичанин, но почему пятнадцать теперь "twenty". И кнопки 2, 5, десять, двенадцать и пятнадцать удушили меня, как перфекциониста.
Простите но можно было бы использовать Color chooser места кнопак . А так туториал очень очень очень хорошой
Ой забыл можно было ещë сделать размеры через entry
*Что не так об'ясните пожалуйста: File "C:\Users\home\Downloads\в.py", line 26, in
command=lambda: color_change("Red"))
NameError: name 'color_change' is not defined*
vi navernoe napisali funkciu 'color_change' nepravilno, ili vi voobshe eyo ne pisali
можете сделать видео как на писать mp3 плеер
Когда быстро рисую то линия прерывается и там просто точки
как исправить ?
добавь вместо c.create_oval(x1, y1, x2, y2,
fill=color, outline=color) вот это:
brush_size = 0.05
color = 'black'
points = []
points.append((x1, y1))
if len(points) > 2:
c.create_line(points[-3:], fill=color, width=brush_size, smooth=1)
Thank you
Покажите весь код программы пожалуйста!
тебе жесткий респект)
полезный урок, без объяснений вы просто сотрясаете воздух, представьте себе что вы пишите на японском для детей понимающих только русский и ничего не объясняете.
Вам все понятно, а аудитория сидит и в шоке моргает глазками. в результате как в теории пустого и сложного - получается только пустое. Для аудитории вы вызываете только отрицательные эмоции, вот посмотрел я видео и сделал вывод - вы не умеете преподавать, объясняете плохо, тратите в пустую мое и свое время, в вашу школу я точно не пойду заниматься. Я смотрел некоторые курсы других авторов, и после просмотра я находил их сайты и покупал у них любые вещи которые они продавали - книги, уроки - чтобы отблагодарить за качество подаваемого материала. Ваш ресурс хочется поскорее закрыть и забыть
на вашем месте я бы удалил все видео в этом разделе, это антиреклама
Неплохо было бы добавить кнопку сохранения
мало пользы от урока. вы пишите часть кода вообще без комментариев. все таки для детей уроки. Например параметры padx, pady, sticky и т.д. Предложение: если на какие-то темы уже говорилось в предыдущих видео то можно давать на них ссылки.
понимаешь для это надо смотреть другие видео и это чуть выше для более профи иногда говорят что просмотрите другие видео
сними те как сделать глюк с помощью текстового документа пожалуйста
добавьте еще w.bind("", paint), ибо при обычном нажатии на холст, ничего не происходит
всё равно нечего не происходит
странно, но у меня почему-то кнопки не вывелись и ошибок нет странно, но почему объясните пожалуйста
у меня питон 3 и мне выдаёт ошибку я кобы не правельные данные где написанно bg="white" Нa b
А як зробити зберігання в файл, або навпаки відкриття готового файла?
Спасибо
хорошое видива
умница
а чтобы нажим пера wacom был?)
Мне кажется, или раньше были уроки по чат боту на этом канале
вроде да
я в шоке
все: что случилось?
Я: У меня получилось!!!!!!!!
все:ну и что?
Я:у меня в жизни не чего не получалась
все:эмм поняли
Здравствуйте, возник такой вопрос. Если начинаю быстро вести мышкой по холсту, то образуются большие пробелы между овалами, связано ,наверно, с низкой частотой обновления метода, но у вас при этом такой проблемы нет. Можете подсказать как решить ее?
Та же самая фигня!!!
Вместо овалов рисуйте линии
а на какой это версии питона?
Извините, у меня 38 строка выдаёт ошибку
Что делать если пишет NameError: name 'change_color' is not defined?
Этой функции нет, либо неправильное имя
Чемто похоже местами на асмр...
есть что проект с канвас, но не паинт?
ребята!!! у кого получилось дайте код плиз, а то у меня почему то не рисует ничего, диалоговое окно и место для рисования есть, а не рисует. и кстати, ошибок в коде не выдает!!! либо подскажите что делать:)
прикольно
Можете объяснить как можно сохранить нарисованный рисунок правой кнопкой мыши?
когда нажимаешь правой кнопкой мышки по рисунку, который хочешь сохранить, появляется меню. В нем выбираешь пункт: "Сохранить изображение как.." и уже открывается окошко, в котором выбираешь куда на компьютере сохранить картинку. Все :) Надеюсь, понятно)
у меня не появляется меню
Хороший урок, но блин когда допускает ошибки при написании по англиский меня аж передергивает)))
классно
ничего не сработало
А я сделал на ПКМ квадрат:)
а я на колесико треугольник)
У меня что-то запускаться не хочет _tkinter.TclError: unknown option "-hight".
heigth
Здравствуйте, ITGENIO как называется версия Python использаванная в видео ролике.
это PyCharm
@@СансМеголовании я фотошоп это программист
@@emrc5085 Какой я фотошоп?... Это не фотошоп, а среда програмирования Pycharm.
а какая это версия?
спасибо за урок. Можно пожалуйста скинуть код сюда
Где питон скачать?
Когда будет Scratch?
Скоро)
Завтра-послезавтра)
Можно ли как то сохранить нарисованный рисунок???
правой кнопкой мышки
код кому мб нужен
from tkinter import *
canvas_widht = 500
canvas_height = 500
brush_size = 3
color = "black"
def paint(event):
global brush_size
global color
x1 = event.x - brush_size
x2 = event.x + brush_size
y1 = event.y - brush_size
y2 = event.y + brush_size
w.create_oval(x1,y1,x2,y2,fill=color,outline=color)
def brish_size_change(new_size):
global brush_size
brush_size = new_size
def color_change(new_color):
global color
color = new_color
root = Tk()
root.title("paint")
w = Canvas(root, width=canvas_widht,height=canvas_height,bg="white")
w.bind("",paint)
black_btn = Button(text="black",width=10,bg='black',command=lambda: color_change('black'))
red_btn = Button(text="red",width=10,bg='red',command=lambda: color_change('red'))
yellow_btn = Button(text="yellow",bg='yellow',width=10,command=lambda: color_change('yellow'))
purple_btn = Button(text="purple",bg='purple',width=10,command=lambda: color_change('purple'))
brown_btn = Button(text="brown",bg='brown',width=10,command=lambda: color_change('brown'))
delete_btn = Button(text="delete",bg='blue',width=15,height=2,command=lambda: w.delete('all'))
clear_btn = Button(text="ластик",width=15,command=lambda: color_change('white'))
size1_btn = Button(text="standart size",width=10,command=lambda:brish_size_change(3))
size2_btn = Button(text="5 size",width=10,command=lambda:brish_size_change(5))
size3_btn = Button(text="10 size",width=10,command=lambda:brish_size_change(10))
size4_btn = Button(text="15 size",width=10,command=lambda:brish_size_change(15))
size5_btn = Button(text="20 size",width=10,command=lambda:brish_size_change(20))
w.grid(row=2,column=0,columnspan=7,padx=5,pady=5,sticky=E+W+S+N)
w.columnconfigure(6,weight=1)
w.rowconfigure(2,weight=1)
black_btn.grid(row=0,column=1)
red_btn.grid(row=0,column=2)
yellow_btn.grid(row=0,column=3)
purple_btn.grid(row=0,column=4)
brown_btn.grid(row=0,column=5)
delete_btn.grid(row=0,column=6)
size1_btn.grid(row=1,column=1)
size2_btn.grid(row=1,column=2)
size3_btn.grid(row=1,column=3)
size4_btn.grid(row=1,column=4)
size5_btn.grid(row=1,column=5)
clear_btn.grid(row=1,column=6)
root.mainloop()
Блін, а сохранить то как.. ?
А где Scale
У меня одной видео мутное в некоторых местах??
что это за программа?
Пятнадцать пишется fifteen
привет из 2020
привет из 2022
как установить tkinter?
так он же изначально установлен
...
В мене вибило ошибку😢
можно код пж
Как называется этот текстовый редактор
Oho ne ploho
я не начинающий программист, изучал и другие языки, учусь на 3 курсе в вузе, но даже мне некоторые моменты тяжело понять потому что автор ничего толком не объясняет а пишет код и бормочит что-то себе под нос. Дизлайк
Так все вам разжуй самим порыться и все проверить слабо?
Почему этот видос посмотрело так много криворуких и тупых людей,которые не могут скачать idle или бету пайчарма и не понимают,что версия питона должна быть 3.0+
i speak english
Лютый говнокод. И такие люди еще кого-то учат...
Зачем эти уродливые кнопки вверху экрана, если есть виджет Menu? Ты что, месяц назад учить Python начала, что ли? Да и какой это графический редактор, если он не может сохранить изображение? М-да, новички лезут в RUclips учить остальных, приплыли...
Когда быстро рисую то линия прерывается и там просто точки
как исправить ?
просто tag_bind срабатывает медлено..
добавь вместо c.create_oval(x1, y1, x2, y2,
fill=color, outline=color) вот это:
brush_size = 0.05
color = 'black'
points = []
points.append((x1, y1))
if len(points) > 2:
c.create_line(points[-3:], fill=color, width=brush_size, smooth=1)