Я создаю новый объект Button, но при создании не указывал опцию command
. Есть ли способ в Tkinter изменить команду (onclick) после того, как объект был создан?Команда изменения Метод для кнопки Tkinter в Python
ответ
Хотя Eli Courtwright's программа будет работать fine¹, что вы на самом деле, кажется, хотят, хотя это просто способ перенастроить после создания экземпляра любого атрибута, который вы могли бы установить, когда вы instantiated² , Как вы это делаете, с помощью метода configure().
¹ «штраф», если вы используете только мышь; если вам небезразлично использовать табуляцию и использовать кнопки [Пробел] или [Ввод] на кнопках, вам также придется выполнять (дублирование существующего кода) события нажатия клавиш. Установка опции command
через .configure
намного проще.
² единственным атрибутом, который не может измениться после создания экземпляра, является name
.
Sure; просто используйте метод bind
, чтобы указать обратный вызов после создания кнопки. Я только что написал и протестировал пример ниже. Вы можете найти хороший учебник по делать это на http://www.pythonware.com/library/tkinter/introduction/events-and-bindings.htm
from Tkinter import Tk, Button
root = Tk()
button = Button(root, text="Click Me!")
button.pack()
def callback(event):
print "Hello World!"
button.bind("<Button-1>", callback)
root.mainloop()
Параметр конфигурации команды - это то, что обычно используется для нажатия кнопок. Функция обратного вызова не нуждается в аргументе события. – tzot 2008-09-16 10:36:47