【发布时间】:2017-07-14 07:28:37
【问题描述】:
我开发了一个简单的 Python 应用程序做一些事情,然后我决定使用 Tkinter 添加一个简单的 GUI。
问题是,当 main 函数执行它的工作时,窗口冻结了。
我知道这是一个常见问题,并且我已经读过我应该使用多线程(非常复杂,因为该函数也会更新 GUI)或将我的代码划分为不同的函数,每个函数工作一段时间。 无论如何,我不想为这样一个愚蠢的应用程序更改我的代码。
我的问题是:有没有简单的方法可以每秒更新我的 Tkinter 窗口?我只想应用 KISS 规则!
下面我给你一个伪代码示例,我试过但没用:
class Gui:
[...]#costructor and other stuff
def refresh(self):
self.root.update()
self.root.after(1000,self.refresh)
def start(self):
self.refresh()
doingALotOfStuff()
#outside
GUI = Gui(Tk())
GUI.mainloop()
它只会执行一次刷新,我不明白为什么。
非常感谢您的帮助。
【问题讨论】:
-
你不能指望你的程序在
doingALotOfStuff()忙的时候每秒都运行self.refresh。我认为你不会绕过多线程。 -
我明白了。对我来说似乎很疯狂,没有简单的解决方案来做这样一个简单的软件......也许有人会告诉我们任何技巧!
标签: python user-interface tkinter