【发布时间】:2015-10-03 11:33:34
【问题描述】:
我正在构建一个 GUI 应用程序来监视/控制远程嵌入式客户端设备。每个客户端的状态机都保存在主字典中,并在 GUI 中表示为 Notebook 小部件中的选项卡(框架)实例。我想在新客户端注册时实例化一个选项卡(在我的应用程序中定义为一个类),并在客户端链接超时时隐藏或忘记选项卡。如果/当客户重新注册时,我将重新实例化。
总的来说,我是 Python、Tkinter 和 OO 的新手,并且正在为程序结构而苦苦挣扎。我需要不断循环遍历字典记录以刷新 GUI,但我得出结论我不能在 root.mainloop() 结构中进行迭代。因此状态机字典记录或元素的“外部”更改需要在外部刷新相应的 GUI Notebook 选项卡实例,包括创建和删除我的选项卡类的实例。
我相信有一个标准的做法,但我在学习方面还没有取得足够的进展来解决这个问题。一些快速的建议可以推动我朝着正确的方向前进。
【问题讨论】:
-
您是正确的,不应在事件处理程序中连续(或很长时间)循环。 tkinter 的替代品是使用 .after 函数。 SO的答案中有几个例子,包括我的一些。
-
找到.after,包括你的一个例子。似乎我需要在我的 GUI 对象中刷新的解决方案......只需要改变我的范式以在对象内进行字典管理,而不是像我试图做的那样在外部进行管理。谢谢!
标签: python user-interface dictionary tkinter event-handling