Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 8, 2018 18:26:55

vladikasik
Зарегистрирован: 2018-04-27
Сообщения: 20
Репутация: +  1  -
Профиль   Отправить e-mail  

tkinter кнопки срабатывают сами

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



С уважением ваш питонист

Прикреплённый файлы:
attachment _main___.py (2,0 KБ)

Офлайн

#2 Авг. 8, 2018 19:36:00

rami
Зарегистрирован: 2018-01-08
Сообщения: 280
Репутация: +  71  -
Профиль   Отправить e-mail  

tkinter кнопки срабатывают сами

В функции start в строке кода (а так же в трёх следующих за ней):

 plus = Button(root, text='+', command=lambda: self.operation('+'))
нужно добавить lambda, иначе вместо назначения функции кнопке она будет немедленно вызвана.

Код очень жуткий.

Офлайн

#3 Авг. 8, 2018 19:51:29

vladikasik
Зарегистрирован: 2018-04-27
Сообщения: 20
Репутация: +  1  -
Профиль   Отправить e-mail  

tkinter кнопки срабатывают сами

а почему работает вот так

from tkinter import*

master=Tk()

def e1_delete():

    e1.delete(first=0,last=1)

e1=Entry(master, width=20)

e1.pack()

B=Button(master, text="Submit", command=e1_delete)

B.pack()

master.mainloop()



С уважением ваш питонист

Офлайн

#4 Авг. 8, 2018 20:11:39

rami
Зарегистрирован: 2018-01-08
Сообщения: 280
Репутация: +  71  -
Профиль   Отправить e-mail  

tkinter кнопки срабатывают сами

Когда вы пишете command = func, вы назначаете функцию func команде, а если написать command = func(), то функция func() будет немедленно вызвана. Лямбда передаёт функцию с параметрами в команду, предотвращая её непосредственный вызов.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version