command
新しいButtonオブジェクトを作成しましたが、作成時にオプションを指定しませんでした。オブジェクトが作成された後にコマンド(onclick)機能を変更する方法はTkinterにありますか?
Cristian
質問する
35166 次
2 に答える
34
Eli Courtwright のプログラムは問題なく動作します¹。これを行う方法は、configure() メソッドを使用することです。
from Tkinter import Tk, Button
def goodbye_world():
print "Goodbye World!\nWait, I changed my mind!"
button.configure(text = "Hello World!", command=hello_world)
def hello_world():
print "Hello World!\nWait, I changed my mind!"
button.configure(text = "Goodbye World!", command=goodbye_world)
root = Tk()
button = Button(root, text="Hello World!", command=hello_world)
button.pack()
root.mainloop()
¹ マウスのみを使用する場合は「問題ありません」。ボタンでのタブ移動と [Space] または [Enter] の使用に関心がある場合は、(既存のコードを複製して) キープレス イベントも実装する必要があります。command
オプションを設定する.configure
方がはるかに簡単です。
² インスタンス化後に変更できない唯一の属性はname
.
于 2008-09-16T01:24:37.087 に答える
2
もちろん; 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()
于 2008-09-16T01:12:22.860 に答える