我试图使用Tkinter创建一个简单的表单,一旦按下按钮,它将执行一个操作。我该如何“倾听”按钮的按下?
我创建了一个回调方法,当按下按钮时,它将更改状态变量,但无法确定一旦按下按钮,如何在主循环中引起操作。
我尝试使用while循环(在绘制按钮之后)检查状态变量的值,但是当我这样做时,循环会执行,但我的GUI元素不会出现在屏幕上。(如果我使用for循环,它们确实出现,但我认为这不会起作用。)
我如何“等待”状态更改为“状态”变量?或者是有一种内置的方法来完成我所缺少的?
(实际代码稍微复杂一些——类似于答案here(但没有所有按钮都在一个页面上)中的方法),但我认为原理仍然相同(如何侦听对象变量中的状态变化)。)
from Tkinter import *
master = Tk()
def callback():
status = 0
print status
status = 1
myB = Button(text="Enter", command=callback)
myB.pack()
print status
# while True:
# if status == 0:
# print "button was clicked"
mainloop()
您可以使用
after(time_ms, function_name)
重复调用函数(但不使用while True
)。在或者您可以使用object
IntVar
、StringVar
等和trace
在对象改变值时调用函数。在顺便说一句:
^{pr2}$Label
可以在StringVar
更改值时自动更改其文本-它不需要trace
。在参见:The Variable Classes (BooleanVar, DoubleVar, IntVar, StringVar)
相关问题 更多 >
编程相关推荐