我有一個使用有限元方法進行計算的程序,可能需要花費幾分鐘時間。 由於該程序對於用戶來說可能已凍結,因此我計算了它預先計算的迭代次數,並將百分比進度打印到TKinter中的文本小部件。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」變量打印到控制檯,它工作得很好,但我希望用戶在查看UI而不是在控制檯。
有沒有什麼辦法可以讓TKinter窗口不凍結並在程序運行時更新文本?
您從不想在GUI的主線程中調用'sleep',因爲它會在整個GUI處於休眠狀態時凍結整個GUI。 – 2014-11-03 23:18:29
謝謝。我使用線程模塊來創建一個不同的線程,這解決了我的問題。 – 2014-11-04 20:02:47