Уроки по 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... .

Комментарии • 123

  • @leopinlex2151
    @leopinlex2151 6 лет назад +21

    Очень круто! Я начинающий питонист...и уже обожаю этот ЯП! А такие уроки полезны очень! Практика! Спасибо!

  • @ketmontv306
    @ketmontv306 4 года назад +5

    2:51 НАШУ МЫШЬ ! Так забавно и мило)

  • @on_eveth
    @on_eveth 3 года назад +2

    Анастасия, спасибо вам огромное! Ваш видеоролик очень помог в создании программы.

  • @philengel9540
    @philengel9540 6 лет назад +44

    в общем видео как для начинающих так себе .многого не объясняется.лучше было бы объяснить строчка за строчкой значение абсолютно каждой команды.каждой запятой. почему так а не по другому.

    • @gregplittjunior8313
      @gregplittjunior8313 5 лет назад +1

      она не говорила что это для начинающих)

    • @nihony2687
      @nihony2687 4 года назад

      @@gregplittjunior8313 не ну хотя бы после написания def можно было обяснить зачем она

    • @kolbasa6178
      @kolbasa6178 4 года назад +6

      @@nihony2687 она 100 раз сказала что мы создаём ФУНКЦИЮ

    • @konstantinberejnoy3362
      @konstantinberejnoy3362 3 года назад

      если все разжевывать, в чем тогда обучение? это как репетитор который за тебя всю домашку делает

  • @МаксимВыходцев-з1ш
    @МаксимВыходцев-з1ш 4 года назад +9

    (При быстром движении мышкой остается расстояние между овалами, если знаете в чем проблема, отпишите)Весь код:
    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()

    • @NeoniumOxide
      @NeoniumOxide 4 года назад

      Cpasibo

    • @АлёшаВасильев-б2щ
      @АлёшаВасильев-б2щ 3 года назад

      (Недостаток производительности) Не успевает, когда мышь слишком быстро. Мышь движется, пока еще нет проверки.

    • @qqwince
      @qqwince 3 года назад

      спасибо

    • @ЛюдмилаКривошеева-н4е
      @ЛюдмилаКривошеева-н4е 3 года назад

      добавь вместо 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)

    • @Daniell-r5e
      @Daniell-r5e Год назад

      @@ЛюдмилаКривошеева-н4е большое спасибо)

  • @FoxComment
    @FoxComment 7 лет назад +10

    Интересно ^_^

  • @МаксимЗалюбовський-о3л

    Здраствуйте, очень понравился ваш гайд, все получилось, но дайте пожалуйста идею как еще создать кнопку для сохранения рисунка в формате PNG. Буду очень благодарен.

    • @knifeplayxp1546
      @knifeplayxp1546 4 года назад

      для этого нужно качнуть Pillow(PIL) вроде.

    • @whitehat-it-4096
      @whitehat-it-4096 3 года назад

      @@knifeplayxp1546 да

  • @igorgrischenko6518
    @igorgrischenko6518 6 лет назад +19

    Впервые вижу девушку которая делает уроки по программированию)

    • @taraskhudiakov4825
      @taraskhudiakov4825 5 лет назад +4

      Она включила камеру?

    • @Mallow577
      @Mallow577 3 года назад +1

      а вдруг это мужик

    • @SashaGun_GD
      @SashaGun_GD 3 года назад

      @@Mallow577 нет, подросток

    • @Mallow577
      @Mallow577 3 года назад

      @@SashaGun_GD нет Женщина

  • @sanchis7213
    @sanchis7213 6 лет назад

    22.55 зашло словечко))

  • @ФифтиСент-ж9я
    @ФифтиСент-ж9я 3 года назад +1

    Чтоб исправить баг когда у вас рисуется точки вместо прямой линии. В самом верху создайте список "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())
    И должно сработать

  • @King-ve1fs
    @King-ve1fs 2 года назад

    спасибо вам большое, у вас очень приятный голос

  • @МишаТитарев-и9в
    @МишаТитарев-и9в 7 лет назад +2

    Обажаю вашу школу ^_^

  • @TimigucchiVuitton
    @TimigucchiVuitton 3 года назад

    Спасибо большое, очень интересный урок!

  • @backoffer3228
    @backoffer3228 4 года назад +1

    Спасибо за урок!

  • @indominusmonster6433
    @indominusmonster6433 Год назад

    Чтоза атрибут sticky у метода grid и что за E W N и S? У меня из-за них все рушится, говорит что нет таких переменных

  • @nadink8000
    @nadink8000 6 лет назад

    Привет! Почему может не работать увеличение размера кистей? (23,10 мин.) five_btn = Button(text = "5", width = 10, command = lambda: brish_size_change(5)) five_btn.grid(row = 1, column = 3)

  • @Annnf20
    @Annnf20 4 года назад +2

    Я конечно не англичанин, но почему пятнадцать теперь "twenty". И кнопки 2, 5, десять, двенадцать и пятнадцать удушили меня, как перфекциониста.

  • @nyrb3058
    @nyrb3058 3 года назад

    Простите но можно было бы использовать Color chooser места кнопак . А так туториал очень очень очень хорошой

    • @nyrb3058
      @nyrb3058 3 года назад

      Ой забыл можно было ещë сделать размеры через entry

  • @ripdorinn6064
    @ripdorinn6064 6 лет назад +1

    *Что не так об'ясните пожалуйста: File "C:\Users\home\Downloads\в.py", line 26, in
    command=lambda: color_change("Red"))
    NameError: name 'color_change' is not defined*

    • @makSyak
      @makSyak 6 лет назад

      vi navernoe napisali funkciu 'color_change' nepravilno, ili vi voobshe eyo ne pisali

  • @АртёмДавыдов-ы5э
    @АртёмДавыдов-ы5э 7 лет назад +3

    можете сделать видео как на писать mp3 плеер

  • @wij1563
    @wij1563 6 лет назад +3

    Когда быстро рисую то линия прерывается и там просто точки
    как исправить ?

    • @ЛюдмилаКривошеева-н4е
      @ЛюдмилаКривошеева-н4е 3 года назад

      добавь вместо 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)

  • @fifaplayer8009
    @fifaplayer8009 4 года назад +1

    Thank you

  • @evolution680
    @evolution680 5 лет назад +2

    Покажите весь код программы пожалуйста!

  • @glonk8176
    @glonk8176 4 года назад

    тебе жесткий респект)

  • @ЕвгенийБондаренко-с5е

    полезный урок, без объяснений вы просто сотрясаете воздух, представьте себе что вы пишите на японском для детей понимающих только русский и ничего не объясняете.
    Вам все понятно, а аудитория сидит и в шоке моргает глазками. в результате как в теории пустого и сложного - получается только пустое. Для аудитории вы вызываете только отрицательные эмоции, вот посмотрел я видео и сделал вывод - вы не умеете преподавать, объясняете плохо, тратите в пустую мое и свое время, в вашу школу я точно не пойду заниматься. Я смотрел некоторые курсы других авторов, и после просмотра я находил их сайты и покупал у них любые вещи которые они продавали - книги, уроки - чтобы отблагодарить за качество подаваемого материала. Ваш ресурс хочется поскорее закрыть и забыть

  • @frederic8347
    @frederic8347 4 года назад

    Неплохо было бы добавить кнопку сохранения

  • @kanalya1000chertey
    @kanalya1000chertey 7 лет назад +1

    мало пользы от урока. вы пишите часть кода вообще без комментариев. все таки для детей уроки. Например параметры padx, pady, sticky и т.д. Предложение: если на какие-то темы уже говорилось в предыдущих видео то можно давать на них ссылки.

    • @grand-point6407
      @grand-point6407 5 лет назад +1

      понимаешь для это надо смотреть другие видео и это чуть выше для более профи иногда говорят что просмотрите другие видео

  • @hysayseries2173
    @hysayseries2173 7 лет назад +2

    сними те как сделать глюк с помощью текстового документа пожалуйста

  • @ilovemama6997
    @ilovemama6997 3 года назад

    добавьте еще w.bind("", paint), ибо при обычном нажатии на холст, ничего не происходит

    • @neik2185
      @neik2185 2 года назад

      всё равно нечего не происходит

  • @artyomplay_game9715
    @artyomplay_game9715 6 лет назад

    странно, но у меня почему-то кнопки не вывелись и ошибок нет странно, но почему объясните пожалуйста

  • @ДимаГалыгин-й9ц
    @ДимаГалыгин-й9ц 3 года назад

    у меня питон 3 и мне выдаёт ошибку я кобы не правельные данные где написанно bg="white" Нa b

  • @streview2254
    @streview2254 5 лет назад

    А як зробити зберігання в файл, або навпаки відкриття готового файла?

  • @tigranovakyan4913
    @tigranovakyan4913 5 лет назад

    Спасибо

  • @kiwi-cz1mn
    @kiwi-cz1mn 3 года назад

    хорошое видива

  • @aquagirl7166
    @aquagirl7166 7 лет назад +2

    умница

  • @dicloniusN35
    @dicloniusN35 2 года назад

    а чтобы нажим пера wacom был?)

  • @ivanhesoyam
    @ivanhesoyam 5 лет назад +1

    Мне кажется, или раньше были уроки по чат боту на этом канале

  • @Непетамузыка
    @Непетамузыка 3 года назад

    я в шоке
    все: что случилось?
    Я: У меня получилось!!!!!!!!
    все:ну и что?
    Я:у меня в жизни не чего не получалась
    все:эмм поняли

  • @maxjames6827
    @maxjames6827 6 лет назад

    Здравствуйте, возник такой вопрос. Если начинаю быстро вести мышкой по холсту, то образуются большие пробелы между овалами, связано ,наверно, с низкой частотой обновления метода, но у вас при этом такой проблемы нет. Можете подсказать как решить ее?

    • @palerite
      @palerite 5 лет назад

      Та же самая фигня!!!

    • @Daniell-r5e
      @Daniell-r5e Год назад +1

      Вместо овалов рисуйте линии

  • @ekalkahamster-2587
    @ekalkahamster-2587 4 года назад

    а на какой это версии питона?

  • @drotywefnf
    @drotywefnf 3 года назад

    Извините, у меня 38 строка выдаёт ошибку

  • @edgarpoe3008
    @edgarpoe3008 4 года назад

    Что делать если пишет NameError: name 'change_color' is not defined?

    • @maksx1434
      @maksx1434 4 года назад

      Этой функции нет, либо неправильное имя

  • @festiveFurry
    @festiveFurry 6 лет назад +8

    Чемто похоже местами на асмр...

  • @glonk8176
    @glonk8176 4 года назад

    есть что проект с канвас, но не паинт?

  • @alexanderdragunov4701
    @alexanderdragunov4701 5 лет назад

    ребята!!! у кого получилось дайте код плиз, а то у меня почему то не рисует ничего, диалоговое окно и место для рисования есть, а не рисует. и кстати, ошибок в коде не выдает!!! либо подскажите что делать:)

  • @maksimsivanovs7718
    @maksimsivanovs7718 6 лет назад

    прикольно

  • @TIMAmorp
    @TIMAmorp 7 лет назад

    Можете объяснить как можно сохранить нарисованный рисунок правой кнопкой мыши?

    • @itgenio
      @itgenio  7 лет назад

      когда нажимаешь правой кнопкой мышки по рисунку, который хочешь сохранить, появляется меню. В нем выбираешь пункт: "Сохранить изображение как.." и уже открывается окошко, в котором выбираешь куда на компьютере сохранить картинку. Все :) Надеюсь, понятно)

    • @yuliak2191
      @yuliak2191 7 лет назад +1

      у меня не появляется меню

  • @АсетСыдыков-ф9э
    @АсетСыдыков-ф9э 4 года назад

    Хороший урок, но блин когда допускает ошибки при написании по англиский меня аж передергивает)))

  • @СансМеголовании
    @СансМеголовании 6 лет назад

    классно

  • @ПавелГренко
    @ПавелГренко 6 лет назад +2

    ничего не сработало

  • @palerite
    @palerite 5 лет назад +2

    А я сделал на ПКМ квадрат:)

  • @РувимЮщенко-ф5п
    @РувимЮщенко-ф5п 7 лет назад

    У меня что-то запускаться не хочет _tkinter.TclError: unknown option "-hight".

  • @milena8012
    @milena8012 6 лет назад

    Здравствуйте, ITGENIO как называется версия Python использаванная в видео ролике.

    • @СансМеголовании
      @СансМеголовании 6 лет назад

      это PyCharm

    • @emrc5085
      @emrc5085 5 лет назад +1

      @@СансМеголовании я фотошоп это программист

    • @tixonochek
      @tixonochek 4 года назад

      @@emrc5085 Какой я фотошоп?... Это не фотошоп, а среда програмирования Pycharm.

  • @АльбертИнштейн-м3о

    а какая это версия?

  • @НатальяСолдатова-р7р

    спасибо за урок. Можно пожалуйста скинуть код сюда

  • @МарияУстюжанина-г6г

    Где питон скачать?

  • @onscratcher6316
    @onscratcher6316 7 лет назад +1

    Когда будет Scratch?

    • @itgenio
      @itgenio  7 лет назад

      Скоро)

    • @itgenio
      @itgenio  7 лет назад

      Завтра-послезавтра)

  • @TIMAmorp
    @TIMAmorp 7 лет назад

    Можно ли как то сохранить нарисованный рисунок???

    • @itgenio
      @itgenio  7 лет назад +1

      правой кнопкой мышки

  • @СемёнИванов-э6н
    @СемёнИванов-э6н 5 лет назад

    код кому мб нужен
    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()

  • @vasil-vasil
    @vasil-vasil 3 года назад

    Блін, а сохранить то как.. ?

  • @quinellacardinal3917
    @quinellacardinal3917 5 лет назад

    А где Scale

  • @МарияВахрушева-ю3з

    У меня одной видео мутное в некоторых местах??

  • @ОльгаКуликова-щ2п
    @ОльгаКуликова-щ2п 5 лет назад +1

    что это за программа?

  • @artemryabikov9434
    @artemryabikov9434 6 лет назад

    Пятнадцать пишется fifteen

  • @hashiro9
    @hashiro9 4 года назад

    привет из 2020

    • @neik2185
      @neik2185 2 года назад

      привет из 2022

  • @ModeRatoR_-zm9ns
    @ModeRatoR_-zm9ns 4 года назад

    как установить tkinter?

    • @newhupopo
      @newhupopo 4 года назад

      так он же изначально установлен

    • @kirillusenko
      @kirillusenko 4 года назад

      ...

  • @leonidradomskiy8744
    @leonidradomskiy8744 Год назад

    В мене вибило ошибку😢

  • @visionxyoutube5588
    @visionxyoutube5588 6 лет назад

    можно код пж

  • @Sosochek701
    @Sosochek701 4 года назад

    Как называется этот текстовый редактор

  • @vaynah9540
    @vaynah9540 6 лет назад +1

    Oho ne ploho

  • @alexpolsky8524
    @alexpolsky8524 6 лет назад +4

    я не начинающий программист, изучал и другие языки, учусь на 3 курсе в вузе, но даже мне некоторые моменты тяжело понять потому что автор ничего толком не объясняет а пишет код и бормочит что-то себе под нос. Дизлайк

    • @OlegTyulkin
      @OlegTyulkin 5 лет назад +1

      Так все вам разжуй самим порыться и все проверить слабо?

  • @artemaltufiev1045
    @artemaltufiev1045 6 лет назад

    Почему этот видос посмотрело так много криворуких и тупых людей,которые не могут скачать idle или бету пайчарма и не понимают,что версия питона должна быть 3.0+

  • @eh_xx
    @eh_xx 4 года назад

    i speak english

  • @phat80
    @phat80 3 года назад

    Лютый говнокод. И такие люди еще кого-то учат...

  • @name1584
    @name1584 4 года назад

    Зачем эти уродливые кнопки вверху экрана, если есть виджет Menu? Ты что, месяц назад учить Python начала, что ли? Да и какой это графический редактор, если он не может сохранить изображение? М-да, новички лезут в RUclips учить остальных, приплыли...

  • @vladlystopad3422
    @vladlystopad3422 4 года назад +2

    Когда быстро рисую то линия прерывается и там просто точки
    как исправить ?

    • @geistesblitz9046
      @geistesblitz9046 3 года назад

      просто tag_bind срабатывает медлено..

    • @ЛюдмилаКривошеева-н4е
      @ЛюдмилаКривошеева-н4е 3 года назад

      добавь вместо 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)