GUI等待BooleanVar()更改

时间:2013-10-10 08:03:21

标签: python user-interface input tkinter wait

如何让我的Tkinter GUI等待更改BooleanVar()? BooleanVar由距离传感器控制。 GUI应该等到变量变为False并继续移动。

我试图使用一段时间的True循环,但正如预期的那样,它扰乱了主循环并且程序崩溃了。 我也考虑过使用一个方法来等待用户输入,但我无法弄清楚如何。

有什么方法可以解决这个问题吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我不明白你的意思"等等"这里,因为GUI始终处于"等待"的恒定状态。它等待事件,然后它对事件起作用。

如果您以某种方式设置了BooleanVar,则可以在该变量上设置跟踪。当值更改时,跟踪将调用您选择的回调。在该回调中,您的代码可以执行您想要的任何操作。

self.sensor = tk.BooleanVar()
self.sensor.trace("w", self.on_sensor_change)
...
def on_sensor_change(self, *args):
    print "the sensor changed:", self.sensor.get()