更改 Python 中 Tkinter 按钮的命令方法
-
09-06-2019 - |
题
我创建了一个新的 Button 对象,但没有指定 command
创建时的选项。Tkinter 有没有办法在创建对象后更改命令(onclick)功能?
解决方案
尽管 伊莱·考特赖特 程序会正常工作,但您真正想要的似乎只是在实例化后重新配置您在实例化时可以设置的任何属性的一种方法。您如何做到这一点是通过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()
1 如果您只使用鼠标,则“很好”;如果您关心按 Tab 键并在按钮上使用 [Space] 或 [Enter],那么您也必须实现(复制现有代码)按键事件。设置 command
选项通过 .configure
容易得多。
² 实例化后唯一不能改变的属性是 name
.
其他提示
当然;只需使用 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()
不隶属于 StackOverflow