Кнопка Python Tkinter
refreshButton = Button(frameList, text ="Refresh",command = print("pressed"))
refreshButton.place(x=50, y=50)
Почему этот код не выводится "нажата" при каждом нажатии кнопки, а только один раз при ее создании?
Там нет сообщений об ошибках. проблема в том, что print("нажата") не выполняется.
2 ответа
Использование lambda
:
refreshButton = Button(frameList,
text ="Refresh",
command = lambda: print("pressed")
)
Команда кнопки не может дать никаких параметров, если вы не используете lambda
или какая-то другая функция. Вместо этого вам нужно сделать свою собственную функцию для вызова при нажатии кнопки.
def Refresh(*args):
print("pressed")
# do stuff
refreshButton = Button(frameList, text ="Refresh",command = Refresh)
refreshButton.place(x=50, y=50)
Если все, что вы хотите сделать, это print("pressed")
тогда это альтернативное решение. lambda
поймает любые параметры, заданные кнопкой, и позволит вам вызвать функцию со своими параметрами:)
refreshButton = Button(frameList, text ="Refresh",command= lambda *args: print("pressed"))