【发布时间】:2014-11-03 23:02:03
【问题描述】:
我有一个程序使用有限元方法进行可能需要几分钟的计算。 因为该程序可能对用户来说似乎已经冻结了,所以我制作它以便它预先计算它将进行的迭代次数,并将进度以百分比形式打印到 TKinter 中的文本小部件。
问题是程序迭代时主窗口冻结,只更新最后的文本,对用户了解当前计算进度没有多大用处。
这是代码的具体部分:
progr+=dcompl
textbox.configure(state=NORMAL)
textbox.delete(1.0,2.0)
textbox.insert(1.0,"Processando... ")
textbox.insert(2.0,str(int(progr))+"%") #the variable progr is the current progress in %
textbox.configure(state=DISABLED)
每次通过代码的特定部分时,它都会更新“progr”变量。
如果我只是将“progr”变量打印到控制台,它工作得很好,但我希望用户正在查看 UI 而不是控制台。
有什么方法可以让 TKinter 窗口在程序运行时不冻结并更新文本?
【问题讨论】: