2008-09-16 6 views

ответ

15

Хотя Eli Courtwright's программа будет работать fine¹, что вы на самом деле, кажется, хотят, хотя это просто способ перенастроить после создания экземпляра любого атрибута, который вы могли бы установить, когда вы instantiated² , Как вы это делаете, с помощью метода configure().

¹ «штраф», если вы используете только мышь; если вам небезразлично использовать табуляцию и использовать кнопки [Пробел] или [Ввод] на кнопках, вам также придется выполнять (дублирование существующего кода) события нажатия клавиш. Установка опции command через .configure намного проще.

² единственным атрибутом, который не может измениться после создания экземпляра, является name.

1

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() 
+1

Параметр конфигурации команды - это то, что обычно используется для нажатия кнопок. Функция обратного вызова не нуждается в аргументе события. – tzot 2008-09-16 10:36:47