Создание GUI приложения Python tkinter. Виджет Button. Кнопка tkinter

Поделиться
HTML-код
  • Опубликовано: 11 янв 2025

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

  • @ИсламРаджабов-о3у
    @ИсламРаджабов-о3у 3 года назад +52

    Вы лучше чем Хауди, Дударь и Шпагин вместе взятые. Спасибо!

  • @DarjaDivina
    @DarjaDivina 4 года назад +35

    Спасибо огромное, невозможно оторваться! ваш канал -очень ценная находка!

  • @ivanfilin8432
    @ivanfilin8432 2 года назад +38

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

  • @headless_army
    @headless_army 2 года назад +9

    Добрый день! Курс очень понравился но есть один нюанс: 2:51 передать аргументы в кнопке можно. Достаточно написать функцию а потом: command = lambda: название функции(аргументы). То есть через лямбду функцию вызвать другую функцию и уже в нее передать аргументы. Спасибо еще раз за курс!

    • @Яестьчеловек-ш6ф
      @Яестьчеловек-ш6ф Год назад

      И как же это тебе поможет? Если даже вызывать функцию внутри анонимной функций и узнать к чему равен count и изменить словарь button это тебе не поможет а лишь добавит больше кода и ошибки

    • @Яестьчеловек-ш6ф
      @Яестьчеловек-ш6ф Год назад

      Просто если даже изменить count, то не измениться самое число внутри button и нужно будет и count и button менять

  • @ВатквизДеСад
    @ВатквизДеСад 10 месяцев назад

    пропустили момент, когда у функции есть аргументы. спасибо за урок:)

  • @zamestaimja
    @zamestaimja 4 года назад +8

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

  • @JimSimson245
    @JimSimson245 2 года назад +2

    Спасибо вам большое, вы единственный кто понятно, полно и без лишней спешки объясняет. Кто хочет чему- то научиться, вам сюда.

  • @Adult_mult_studio
    @Adult_mult_studio Год назад +6

    импортировал модуль random и подставил в кнопке в command "
    def color():
    c = ['white','black', 'yellow', 'orange', 'green', 'blue', 'purple']
    win.config(background=random.choice(c)) "

  • @MrGor9
    @MrGor9 2 года назад +15

    функция для деактивации/активации кнопки:
    def fsatate():
    if btn5['state'] == DISABLED:
    btn5['state'] = NORMAL
    else:
    btn5['state'] = DISABLED
    Т.е. просто меняется при нажатии значение с DISABLED на NORMAL и наоборот

    • @darkhanishere
      @darkhanishere 2 года назад +1

      Как же я не додумался до этого🤦‍♂

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

      def fsatate():
      if btn4['state'] == tk.DISABLED:
      btn4['state'] = tk.NORMAL
      else:
      btn4['state'] = tk.DISABLED

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

      Спасибо! Помог

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

      File "C:\Users\adilk\Documents\PythonProjects\�������", line 2, in state
      if btn1['state'] == NORMAL:
      NameError: name 'NORMAL' is not defined
      def state():
      if btn1['state'] == NORMAL:
      btn1['state'] = DISABLE
      else:
      btn1[state] = NORMAL
      btn1 = tk.Button(win, text='state',
      command=state,
      state=tk.NORMAL
      )

    • @kopych18
      @kopych18 7 месяцев назад

      @@adilkhanarts21
      *******
      def state():
      if btn1['state'] == tk.NORMAL:
      btn1['state'] = tk.DISABLED
      else:
      btn1[state] = tk.NORMAL

  • @aleksabramov
    @aleksabramov 3 года назад +14

    Цвета можно так нарандомить f"#{random.randrange(0x1000000):06x}"

  • @kutman.eshenkulov
    @kutman.eshenkulov 4 года назад +10

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

  • @СветланаГорячева-я1ю
    @СветланаГорячева-я1ю 2 года назад +1

    Очень информативно и помогает дополнительно к основным курсам, более понятно.Спасибо

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

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

  • @lipsrow216
    @lipsrow216 4 года назад +13

    6:47 Разрывная)

  • @СтаниславЗизевский-ц4ь

    Отличный материал, спасибо!

  • @АндрейАндреев-ю5щ8л
    @АндрейАндреев-ю5щ8л 4 года назад +3

    шикарные курсы по питону!! Спасибо!

  • @Arthur-xx2ek
    @Arthur-xx2ek 10 месяцев назад

    Очень хороший урок!!

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

    Это самое крутое объяснение которое я когда либо находил, спасибо огромное за твое время и труд

  • @МаркИвановФЛПЛ-20
    @МаркИвановФЛПЛ-20 2 года назад +2

    Рандомное изменение цветов по кнопке:
    def color_changer():
    colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple']
    import random
    random_index = random.randint(0, len(colors) - 1)
    root.config(bg=colors[random_index])

  • @alexluthier786
    @alexluthier786 3 месяца назад

    Интересное видео, спасибо. Сечас как раз изучаю ткинтер. А вот как обстоит дело с обработкой некоторого достаточного массива кнопок? Экспериментировал с полем кнопок, создаваемых динамически через цикл. И это получается. А вот как узнать, какая кнопка в этом массиве, нажимается? Например, поле из 100 кнопок. Вручную писать функцию обработчик сто раз, это чересчур. Можно как-то иначе, обрабатывать нажатие, более автомаьичесаки?

  • @mihhail75
    @mihhail75 3 года назад +3

    Спасибо за урок! Хорошо как всегда!

  • @klaxwork1208
    @klaxwork1208 4 месяца назад

    Вопрос: А тут нет каких-то обработчиков событий типа onClick, onButtonDown, onButtonUp, onMove, onMouseOver...?
    Например, пока я веду курсор мыши над кнопкой - что-то происходит...
    И если я хочу при изменении размера окна изменить размер картинки...
    Что-то типа onResize...

  • @Лев-щ1в9ц
    @Лев-щ1в9ц 10 месяцев назад

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

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

    Спасибо тебе добрый человек. Очень информативно, внятно и доходчиво! 🤝

  • @ВадимАкст-ы1р
    @ВадимАкст-ы1р Год назад

    Шутка на 6 минуте разорвала просто )))))))))))))))

  • @teymurismaylov2791
    @teymurismaylov2791 Месяц назад

    Спасибо напишите как можно сделать чтобы текст в лейбл был по правому краю а не по середине

  • @FidelGarsia
    @FidelGarsia 2 года назад +1

    Спасибо огромное! все очень понятно, без лишних слов! 👍

  • @АленаДмуховская-я5л
    @АленаДмуховская-я5л 2 года назад +4

    по замене цвета
    def bg_win():
    col=['red', 'green', 'blue','pink', 'white', 'brown']
    win.config(background=random.choice(col))

  • @greshniktarantino7281
    @greshniktarantino7281 2 года назад +1

    Пока смотрю и повторяю, всё так легко, а как начинаю сам.. затупливаю сразу)

  • @ИльяЛагода-ч2м
    @ИльяЛагода-ч2м Год назад +1

    кнопа срабатывает сразу без ожидания

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

    Ваш урок помог разобраться, лайк!

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

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

  • @darul-asar381
    @darul-asar381 4 года назад +4

    Артём спасибо тебе за такой классный контент, продолжай в том же духе. У меня к тебе вопрос, можно ли в функцию которую мы создаём для кнопки, поставить ссылку на файл txt ? Например, кода мы меняли иконку нашего окна, мы ссылались на фото которую ранее мы скачали, можно ли такое сделать для кнопки, что бы нажав на кнопку у нас открылся лейбл с куча текстов? Очень сумбурно объяснил, но надеюсь ты понял суть

  • @shedevr_football
    @shedevr_football Год назад +1

    import tkinter as tk
    import random as r
    def do():
    colors = ('yellow', 'blue', 'red', 'pink', 'brown', 'purple', 'orange')
    rand = r.randint(0, 6)
    win.config(bg=colors[rand])
    win = tk.Tk()
    photo = tk.PhotoImage(file='programm.png')
    win.config(bg='yellow')
    win.geometry('400x400+300+200')
    win.iconphoto(False, photo)
    button = tk.Button(win, text='Click it!',
    command=do
    )
    button.pack()
    win.mainloop()
    P.s Вот дз), сделал по-своему принципу😁

  • @АлександрВласов-г8т
    @АлександрВласов-г8т 2 года назад +1

    cveta = ['red','green','blue','black','white']
    def random_color():
    window['bg'] = random.choice(cveta)
    b5=Button(window, text='рандомный цвет фона', command=random_color)
    b5.pack()

  • @тейкен
    @тейкен 2 года назад +1

    4:02 для себя

  • @primenzzz4602
    @primenzzz4602 4 года назад +4

    Здравствуйте. Как, непосредственно, изменить параметры Label через Button?
    Например: при нажатии кнопки - меняется цвет определённого текста.

  • @izzi-13
    @izzi-13 17 дней назад

    random_color = f'#{random.randint(0, 255):02x}{random.randint(0, 255):02x}{random.randint(0, 255):02x}'
    win.config(bg=f'{random_color}')
    Чат GPT помог хД. Но команда классная

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

    win=tk.Tk()
    win.geometry(f"400x500+10+20")
    win.title("input")
    win.mainloop()

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

    Спасибо! Помоги тебе бог, добрый человек!

  • @яданиил-п9з
    @яданиил-п9з 4 года назад +3

    А есть двухпозиционные кнопки? Типо переключателя, где есть вкл и выкл?

  • @ВладМн
    @ВладМн 4 года назад +6

    А как сворачивать окно в трэй и выводить всплывающие окошки из трея, вы узнаете в специальном выпуске, доступном только для спонсоров :)))

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

      А шо поделать)

  • @ВиталийГорьков-з1ч
    @ВиталийГорьков-з1ч 2 года назад

    Спасибо Артем
    Все понятно и интересно

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

    Для рандомного выбора фона окна:
    colors=['red','green','blue','yellow','orange']
    def change_ground():
    root.config(bg=random.choice(colors))
    button3['text']='change'
    button3=tk.Button(text='change',command=change_ground)

    • @AXGroser
      @AXGroser Год назад +1

      узковат у тебя рандом))) лучше через randomint ...
      root.config(bg=f"#{random.randint(1,1000)}") в одну строчку, можно через лямбду даже впаять)

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

      @@AXGroser можно и так)

  • @konstantinkatz4457
    @konstantinkatz4457 4 года назад +10

    фрагмент для блокировки/разблокировки кнопок пятой кнопкой
    #------------
    def fstat():
    bstat = btn4['state']
    if bstat == 'normal':
    bstat = 'disabled'
    elif bstat == 'disabled':
    bstat = 'normal'
    btn1['state'] = btn2['state'] = btn3['state'] = btn4['state'] = bstat
    btn5['text'] = f'button stat {bstat}'
    #------------
    btn5 = tk.Button(win, text=f'buttons is normal',
    command=fstat
    )
    #------------
    btn5.pack()

    • @Sroondz
      @Sroondz 2 года назад +1

      Мудро

    • @АнтонНазарук-щ5с
      @АнтонНазарук-щ5с 2 года назад

      Спасибо, как раз ломал голову над этим

    • @АнтонНазарук-щ5с
      @АнтонНазарук-щ5с 2 года назад +3

      Единственное что, DISABLED и NORMAL это же не строка
      Это обьект tk.DISABLED и tk.NORMAL
      Не знаю, как у вас, но у меня ваш код не работает.
      Зато работает вот это:
      def locker():
      global btn_wincolor
      btn_wincolor["state"] = tk.DISABLED
      btn_wincolor.pack()
      Это кнопка по нажатию на которую другая кнопка будет блокироваться

  • @kutman.eshenkulov
    @kutman.eshenkulov 4 года назад +3

    Расскажи подробно про Delate(), Entry и mainloop

  • @ДмитрийГубин1
    @ДмитрийГубин1 Год назад

    Как размещать кнопку и менять её размер?

  • @なやらはなやなさやたゆ

    как сделать так чтоб при нажатии откривалась указаная программа

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

    Без глобал можно как то передать переменную в функцию?

  • @sssernestsss6636
    @sssernestsss6636 2 года назад +2

    Почему именно лямбда? А не обычная функция?

  • @ВалерияМирешко-ь5й
    @ВалерияМирешко-ь5й 4 года назад +11

    def dds():
    global count
    l = [btn1, btn2, btn3]
    if count % 2 == 0:
    for i in l:
    i['state'] = tk.DISABLED
    else:
    for i in l:
    i['state'] = tk.NORMAL

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

      Спасибо большое
      но ты забыла count + = 1

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

      if и else можно внутри одного цикла for написать

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

    Как сделать чтобы после нажатия кнопки окно закрывалось?

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

      в функцию напиши break

  • @meylyssa3666
    @meylyssa3666 4 года назад +3

    ......
    def color_set():
    r = lambda: random.randint(0,255)
    return '#%02X%02X%02X' % (r(),r(),r())
    btn1 = tk.Button(win, text = "Button1", command = color_set)
    btn1.pack()
    win.config(bg = color_set())
    win.mainloop()
    По поводу вашего домашнего задания с генерацией цвета фона при нажатии кнопки. У меня фон почему-то не изменяется. Один раз случайно выбрался - и все.
    Может, со временем снимите видео с разбором этого д/з?

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

      потому что в функции color_set() надо вместо return присваивать это значение для btn1[bg]

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

      @@kanycto4kaспасибо!

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

      @@meylyssa3666 vможете прислать рабочий код? а то я не пойму каким образом можно присвоить значение до btn1[bg]

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

      @@dmytrokovalenko8492 btn1['bg']
      если нужно поменять фоновый цвет окна то win['bg']

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

      def random_color():
      global ran
      r = lambda:randint(0,99)
      ran = str("{:02}".format(r())) + str("{:02}".format(r())) + str("{:02}".format(r()))
      but2['bg'] = f'#{ran}'
      ran = 'ff0000'...
      В 16ричной пока не придумал, как наворотить)
      Цвета представляются в виде трёх групп шестнадцатеричных цифр, где каждая группа отвечает за свой цвет: #112233, где 11 - красный, 22 - зелёный, 33 - синий. Все значения должны быть между 00 и FF.

  • @Artem097
    @Artem097 2 года назад +1

    Дз.Функция случайного цвета:
    from random import randrange
    def randomize_color():
    r = hex(randrange(0, 255, 1))[2:]
    g = hex(randrange(0, 255, 1))[2:]
    b = hex(randrange(0, 255, 1))[2:]
    if len(r) != 2:
    r = '0' + r
    if len(g) != 2:
    g = '0' + g
    if len(b) != 2:
    b = '0' + b
    win.config(bg=f'#{r}{g}{b}')

  • @user-dd6ru4wu5r
    @user-dd6ru4wu5r Год назад

    Вариант выполненного ДЗ:
    def say_hello():
    print('hello')
    def add_label():
    label=tk.Label(win,text='new')
    label.pack()
    def counter():
    global count
    count+=1
    btn4['text']=f'Счетчик:{count}'
    def disabling():
    global count
    count+=1
    if count%2==0:
    btn1['state']='disabled'
    else:
    btn1['state']='normal'
    def coloring():
    color=random.randint(1,900000)
    win.config(bg=f'#{color}')
    count = 0
    import tkinter as tk
    import random
    win = tk.Tk()
    h = 500
    w = 600
    photo = tk.PhotoImage(file = 'fun.png')
    win.iconphoto(False, photo)
    win.config(bg='green')
    win.title("First window")
    win.geometry(f"{h}x{w}+100+200")
    btn1 = tk.Button(win,text='Hello',
    command=say_hello)
    btn2 = tk.Button(win,text='Add new label',
    command=add_label)
    btn3 = tk.Button(win,text='Add new label lambda',
    command=lambda: tk.Label(win,text='new lambda').pack())
    btn4 = tk.Button(win,text=f'Счетчик:{count}',
    command=counter,
    bg='red',
    activebackground='blue'
    )
    btn5 = tk.Button(win,text='Disabling',
    command=disabling,
    bg='yellow',
    activebackground='brown'
    )
    btn6 = tk.Button(win,text='BG_Coloring',
    command=coloring,
    bg='brown',
    )
    btn1.pack()
    btn2.pack()
    btn3.pack()
    btn4.pack()
    btn5.pack()
    btn6.pack()
    win.mainloop()

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

    Интересует. Как указать кнопке чтобы при нажатии на неё запускался другой фаил в питоне со своей графической оболочкой (другая оболочка). Грубо говоря по кнопке из одного фаила на другой?

  • @moscowtrainspotter501
    @moscowtrainspotter501 2 года назад +1

    Функция для изменения состояния всех остальных кнопок:
    def change_state():
    child_keys = win.__dict__['children']
    for el in child_keys:
    if el != '!button':
    if child_keys[el]['state'] == tk.NORMAL:
    child_keys[el]['state'] = tk.DISABLED
    else:
    child_keys[el]['state'] = tk.NORMAL
    change_state_btn = Button_mc(win, text='Change the state of the button',
    command=change_state
    )

  • @Андрюхаслазерки
    @Андрюхаслазерки 3 года назад

    А можно ли как-то функционал кнопок вынести в другие скрипты и запускать их из этого же скрипта (как в C#).

  • @alexeyka1168
    @alexeyka1168 13 дней назад

    д/з(мой вариант):
    import random
    import tkinter as tk
    def rand_color():
    global new_color
    list_ = ['White', 'Red', 'Yellow', 'Orange', 'Green', 'Blue', 'Purple', 'Pink', 'Brown', 'Grey']
    index = random.randint(0, 9)
    new_color = list_[index]
    win.config(bg=new_color)
    button_1.config(bg=new_color)
    win = tk.Tk()
    win.geometry('1000x600+220+80')
    win.title('Random.BG_color')
    button_1 = tk.Button(win,
    text='Change Color',
    command=rand_color)
    button_1.place(x=460, y=255)
    win.mainloop()

  • @тейкен
    @тейкен 2 года назад +1

    5:26

  • @БобЗлобный
    @БобЗлобный 3 года назад +1

    подскажите что обозначает " f " ? В win.geometry(f"400x500+100+200")

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

      это метод форматирования строк - f строки
      a = "python"
      b = "круто"
      # заключите переменную в {}, чтобы отобразить ее значение в выводе
      print(f"{a} это {b}.")
      вывод: python это круто.
      он забыл убрать с прошлого урока, где подставлял вместо размеров переменные с ними

    • @БобЗлобный
      @БобЗлобный 3 года назад +1

      @@KrabDefense ничего не понял, но спасибо за ответ. А можно ссылку на тот урок, а то видео много еще ни все посмотрел.

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

      @@БобЗлобный он там просто подставил подставил и ничего не говорил, просто забей "что такое f строки" тебе сразу выдаст :)

  • @MrGor9
    @MrGor9 2 года назад +2

    Функция случайный фон:
    def random_bg():
    color = random.choice(["black",
    "cyan",
    "magenta",
    "red",
    "blue",
    "gray"
    ])
    win.configure(background=color)
    Если сделал через RGB - поделись!)

    • @МарияКартышова
      @МарияКартышова 2 года назад

      def random_rgb():
      r = lambda: randint(0, 255)
      i = '#%02X%02X%02X' % (r(), r(), r())
      root.config(bg = i)

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

      import random
      color = "#" + random.choice(list_of_color_symbols) + random.choice(list_of_color_symbols) + random.choice(list_of_color_symbols) + random.choice(list_of_color_symbols) + random.choice(list_of_color_symbols) + random.choice(list_of_color_symbols)
      win.config(bg=color)

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

    чтобы функция меняла выбранный параметр для всех кнопок делал список всех кнопок, который обходил в функции, но понимаю что должен быть путь покороче - подскажите как вызвать список с именами всех экземпляров класса Button (btn1, btn2, ...)

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

    Я не понимаю одну вещь. Как я используя одну кнопку смогу передать значение другой. То есть как я могу передать state='DISABLED' другой кнопке?
    Как мне это прописать.?

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

      @@robertrobert5650 , спасибо

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

      import tkinter as tk
      from random import randint
      c = 0
      cc = 0
      col = ['#FF0000', '#00FF00', '#FF1493', '#9ACD32', '#20B2AA', '#FFA500', '#FFFF00', '#8A2BE2']
      def btnCol():
      return col[randint(0, len(col)-1)]
      def btnOne():
      global c
      c += 1
      btn['activebackground'] = btnCol()
      btn['bg'] = btnCol()
      btn['text'] = f'Кнопка была нажата {c} раз'
      win.config(bg=btnCol())
      if c == 10:
      btn2['state'] = tk.DISABLED
      def btnTwo():
      global cc
      cc += 1
      btn2['activebackground'] = btnCol()
      btn2['bg'] = btnCol()
      btn2['text'] = f'Кнопка была нажата {cc} раз'
      win.config(bg=btnCol())
      if cc == 10:
      btn['state'] = tk.DISABLED
      win = tk.Tk()
      win.title('Калькулятор')
      photo = tk.PhotoImage(file = 'Calculator.png')
      win.iconphoto(False, photo)
      win.geometry('350x350+430+190')
      btn = tk.Button(win, text = 'press',
      command = btnOne)
      btn2 = tk.Button(win, text = 'press',
      command = btnTwo)
      btn.pack()
      btn2.pack()
      win.mainloop()
      win.mainloop()
      Это мой код, лень писать другой, в кратце здесь все меняет свой цвет. Но ты посмотри на то, как я изменяю состояние второй кнопки, когда первую кнопку я нажал 10 раз, и так же наоборот

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

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

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

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

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

    from random import*
    root = Tk()
    root.title("Test")
    root.geometry("300x400+600+200")
    root["bg"] = "#fff"
    root.resizable(width=False, height=False)
    photo = PhotoImage(file="icon.png")
    root.iconphoto(False, photo)
    def func():
    s = "blue black white yellow green red brown aqua orange lime".split()
    root["bg"] = choice(s)
    btn1 = Button(text="Нажми", command=func)
    btn1.pack()
    root.mainloop()

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

    Ничего не работает, всё через пятую точку

    • @pulyavglazitiunitaz
      @pulyavglazitiunitaz 5 месяцев назад

      Ты просто написал с 5 точкой

  • @huseynovlatif9655
    @huseynovlatif9655 2 года назад +1

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

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

    Что за настройки и тема у тебя в PyCharm?

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

      WarmNeon

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

      @@egoroffchannel не нашел к сожалению(

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

      @Tyr Tirov посмотри пожалуйста, если не трудно

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

      @Tyr Tirov Спасибо большое

  • @Sergey-cz7ym
    @Sergey-cz7ym 2 года назад

    нажимая на btn3 мы добавляем каждый раз новые label. А как можно изменить текст новых label или одной из новых (добавленных) label?

  • @ЕвгенийПоловинский-в6у

    Артем, подскажи пожалуйста, с чем может быть связана проблема - вот такой код не меняет цвет кнопки. Строка распаковки есть. При этом, если таким же образом параметр bg='red' прописываю в функции add_label - Питон создает кнопку с нужным цветом.

    • @ЕвгенийПоловинский-в6у
      @ЕвгенийПоловинский-в6у 4 года назад

      btn_4 = tk.Button(wind, text=f'счётчик{count}',
      command=counter,
      padx=14,
      pady=16, bg='#E5C6EB')

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

      Дай угадаю, ты на MacOS работаешь =)
      Не переживай, у меня такая же тема
      + коммент выше тоже писал

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

    ДЗ
    from tkinter import *
    def counter():
    global count
    count += 1
    button3['text'] = f'Счетчик: {count}'
    if count % 2 == 1:
    button1['state'] = DISABLED
    button2['state'] = DISABLED
    else:
    button1['state'] = NORMAL
    button2['state'] = NORMAL
    count = 0
    root = Tk()
    root.geometry(f"400x500+100+200")
    root.title("It's my app!")
    button1 = Button(root, text = "Hello",
    command = lambda: Label(root, text = "How're y? ").pack())
    button2 = Button(root, text = "Hi",
    command = lambda: Label(root, text = "Are you going to party? ").pack())
    button3 = Button(root, text = f"Счетчик: {count}",
    command = counter)
    button1.pack()
    button2.pack()
    button3.pack()
    root.mainloop()
    А так спасибо за твои труды.

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

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

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

    👍👍

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

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

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

    Лутший, все понял, спасибо!

  • @HakkeR.1
    @HakkeR.1 2 года назад

    Как двигать кнопки если её кудато хочеш вставить

    • @ДеньгизаПользу
      @ДеньгизаПользу 2 года назад

      тоже запнулся на моменте сдвига самой кнопки. И так и эдак, пока не получается ))

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

    автору огромное спасибо за видео! вот задачка с рандомным фоновым цветом:
    import tkinter as tk
    from random import *
    def random_color():
    color = ['black', 'white', 'green', 'yellow', 'blue', 'red', 'grey', 'purple', 'orange']
    c = randrange(len(color))
    win.config(bg=f'{color[c]}')
    win = tk.Tk()
    win.geometry("500x400")
    bttn_ran = tk.Button(win, text='random fon color',
    command=random_color,
    bg='white',
    fg='black'
    )
    bttn_ran.pack()
    win.resizable(True, True)
    win.mainloop()

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

      харош. я чуть больше кода сделал. через if))

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

    Пытаюсь зделать програму по ИМТ в tkinter но функцыя def не получаеться, сделай пожалуйста ролик как зделать такую прогу(с использываниям messagebox )

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

    Спасибо большое!)

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

    btn4['text'] = f'Счетчик: {count}'
    NameError: name 'btn4' is not defined
    не могу разобраться в чем проблема
    помогите пожалуйста

    • @СергейИванов-ж8э9я
      @СергейИванов-ж8э9я 2 года назад

      def counter():
      global count
      count+=1
      btn4['text']=f'Счетчик : { count } '
      Должно быть так.. У меня всё запускается.

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

      не распаковал

  • @Яхочуролтон
    @Яхочуролтон 2 года назад

    дз:
    from tkinter import *
    root = Tk()
    root.geometry('400x400')
    root.title('proga')
    def s():
    b1['state'] = DISABLED
    b1 = Button(root, text='1',
    )
    b1.pack()
    b2 = Button(root, text='2',
    command=s)
    b2.pack()

    root.mainloop()

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

    import tkinter as tk
    import random
    def btn():
    global r
    r = random.randint(0,5)
    win.config(bg=mass[r])
    r = random.randint(0,5)
    win = tk.Tk()
    a = 100
    b = 300
    win.geometry("600x600")
    btn1 = tk.Button(win, text="Кнопка", bg="blue", command=btn)
    btn1.pack()
    mass = ["red", "blue", "green", "yellow", "purple", "orange"]
    print(r)
    win.mainloop()

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

    Подскажите пожалуйста как сделать что бы нажималась первая кнопка, а счётчик выводил на 2ю кнопку? Не могу понять(((
    def add_label():
    label = tk.Label(win,text='Щёлк!',
    bg='red', #цвет фона текста
    fg='#000000', #цвет шрифта сделала чёрный
    font=('Arial', 20,'bold'), #поменяла шрифт на эриал, сделала его крупнее и жирным
    padx=10, #добавила отступы цвета фона шрифта с боков(рамочка)
    pady=5)
    label.pack()
    def counter ():
    global count
    count+=1
    btn2['text']=f'Танос щёлкнул: {count} раз'
    count = 0
    import tkinter as tk #сокращаем название
    win =tk.Tk()
    btn1 = tk.Button(win,text='Щелчок Таноса!',
    command=add_label
    )
    btn2 = tk.Button(win,text=f'Танос щёлкнул: {count} раз',
    command=counter
    )
    btn1.pack() #выводим кнопку
    btn2.pack()
    win.geometry("500x600+700+400") #Задала размер окна, двумя плюсами я указываю где появляется окно относительно левого угла в пикселях,
    #можно создавать через переменные
    win.resizable(False, False) # растягиваемое окно по умолчанию (True,True)первое ширина второе высота
    win.mainloop()

    • @hoji1944
      @hoji1944 2 года назад +1

      import tkinter as tk
      def counter_func():
      global count
      count+=1
      but_print_counter['text'] = f'count - {count}'
      def rand_color():
      from random import choice as ch
      a = '0123456789ABCDEF'
      color = '#'+''.join([ch(a) for i in range(6)])
      win['bg'] = color
      def sizers():
      global width,height
      from random import randrange as rr
      width = rr(500,1000,150)
      height = rr(500,1000,150)
      win.geometry(f'{width}x{height}')
      def disabled_function():
      if but1['state']==tk.NORMAL:
      but1['state']=tk.DISABLED
      but2['state']=tk.DISABLED
      tk.Label(win,text='but1 and but2 is disabled').pack()
      else:
      but1['state'] = tk.NORMAL
      but2['state'] = tk.NORMAL
      tk.Label(win,text='but1 and but2 is normal').pack()
      height,width = 500,500
      count = 0
      win = tk.Tk()
      win.title('Disabled_App')
      win.geometry(f'{width}x{height}')
      win.resizable(False,False)
      but_disabled = tk.Button(win,text='disabled/normal',command = disabled_function)
      but_counter= tk.Button(win,text = 'counter',command = counter_func)#то что тебе нужно
      but_print_counter = tk.Button(win,text=f'count - {count}')
      but_random_cv = tk.Button(win,text='random color',command = rand_color)
      but_geoma = tk.Button(win,text='WIDTH x HEIGHT',command=sizers)
      but1=tk.Button(win,text='But1',command=lambda:tk.Label(win,text='Hi').pack(),state=tk.NORMAL)
      but2=tk.Button(win,text='But2',command=lambda:tk.Label(win,text='bye').pack(),state=tk.NORMAL)
      but1.pack()
      but2.pack()
      but_disabled.pack()
      but_geoma.pack()
      but_random_cv.pack()
      but_counter.pack()
      but_print_counter.pack()
      win.mainloop()
      вроде это

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

      @@hoji1944 Спасибо!!!

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

      @@Geistik6 всегда пожалуйста

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

    Спасибо огромное!

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

    А как работать с кнопками в массиве?
    На пример изменить цвет?
    Ответишь - подпишусь)

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

    😁

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

    Большое вам спасибо😀😁🤪

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

    Никогда мне так подробно все не разжовывали...

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

    Определенно.

  • @ДмитрийШпаковский-п2ю

    Класс!

  • @ni7688
    @ni7688 2 года назад +1

    7:39 Я удалил случайно это всё :(

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

    import random as rn
    def hex_code():
    rn_hex_code = ""
    char_list = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "A", "B", "C", "D", "E", "F"]
    for i in range(6):
    rn_hex_code += rn.choice(char_list)
    return rn_hex_code
    print(hex_code())

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

    from tkinter import *
    import random
    a= f"#{random.randrange(0x1000000):06x}"
    def change_bg():
    a=f"#{random.randrange(0x1000000):06x}"
    w['bg']=a
    w = Tk()
    button1 = Button(text="hello",command=change_bg)
    w.geometry("500x500+700+210")
    button1.pack()
    w.mainloop()
    меняет цвет фона при нажатии кнопки

  • @legendary_user
    @legendary_user 8 месяцев назад

    при нажатии меняет фон в любой из возможных цветовых кодов
    import tkinter as tk
    import random
    win=tk.Tk()
    win.title('Графическая оболочка')
    win.geometry('640x480+50+50')
    photo=tk.PhotoImage(file='qq.png')
    win.iconphoto(False,photo)
    win.config(bg='black')
    def piska():
    win.config(bg=f'#{random.randint(1,999999)}')
    onebtn=tk.Button(win,text='нажми для piska',command=piska,bg='blue',fg='red',font=('Times New Roman',50,'bold'))
    onebtn.pack()
    win.mainloop()

  • @p1nkyun1corn
    @p1nkyun1corn 4 года назад +4

    Блин я умнею

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

      Зачем это писать?

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

    Вот такое странное рандомное изменение цвета написал
    def rand_color():
    x = f'#{str(hex(randint(10,255)))[2:]}{str(hex(randint(10,255)))[2:]}{str(hex(randint(10,255)))[2:]}'
    return x
    win.config(bg=rand_color())

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

    def color():
    color = randint(0, 255)
    color2 = randint(0, 255)
    color3 = randint(0, 255)
    a = hex(color)[2:].ljust(2, '0').upper()
    b = hex(color2)[2:].ljust(2, '0').upper()
    c = hex(color3)[2:].ljust(2, '0').upper()
    d = '#' + a + b + c
    win.config(bg=d)
    функция для выбора полного рандома цвета

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

    Я ОБОЖАЮ ТЕБЯ!!!
    Я ТОЖЕ ОБ ЭТОМ СНИМАЮ!!
    НО МЕНЯ НИКТО НЕ СМОТРЕТ....
    Посмотрите. ХОТЯБЫ

    • @СергейЮдин-ч2г
      @СергейЮдин-ч2г 3 года назад

      Посмотрел. Но лучше бы не смотрел... Чувак, ты открываешь страницу, чтобы зачитать оттуда информацию, но даже это сделать не можешь.

  • @ArtemBorysenko-vz5wr
    @ArtemBorysenko-vz5wr 3 года назад

    Домашка:
    def change_state_button(button, state=tk.NORMAL):
    button["state"] = state
    def disable_all_buttons():
    buttons = [button1, button2, button3, button4]
    if all(map(lambda button: button["state"] == tk.NORMAL, buttons)):
    for button in buttons:
    change_state_button(button, tk.DISABLED)
    else:
    for button in buttons:
    change_state_button(button)

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

    Домашнее задание то как делать? Раскрасить кнопки и расположить их на экране это одно , а логика взаимодействия с синтаксисом питона это другое. Голову сломал уже как к гребаному счетчику прикрутить замену state

    • @R1ko8686
      @R1ko8686 2 года назад +1

      Просидел вечер в итоге, прогуглил похожие примеры. Сделал. Помимо синтаксиса и логики, важно еще в каком месте находится блок который ты пишешь в самом коде. Боль