5
我有一個程序在您單擊操作按鈕後運行一個長時間的過程。當進程正在運行時,即使我知道程序在後臺運行,根窗口也會說它沒有響應。這個計劃將會發布給我和我一起工作的幾個人,我想確保他們不會在他們看到這個時候嚇壞了,關上窗戶。我所擁有的解決方案是在正在運行的進程的循環中放置一個root.update,但我不確定這是否是最好的修復方法。Tkinter窗口顯示(未響應),但代碼正在運行
使用Python 3.3
下面是代碼的樣本,所以你得到的我在做什麼的想法,這是從主循環調用:
def combine(boxes_to, boxes_from, frame):
to_value,to_pos = gui.checkBoxes(boxes_to)
from_value,from_pos = gui.checkBoxes(boxes_from)
frame.destroy()
running = Label(root,text="Running please do not close..",font = (16))
running.pack()
root.update()
map_to = open("map_to",'r')
for line in map_to:
root.update()
process(line)
running.destroy()
map_to.close()
finish = Button(root, text="Done",command=gui.stop)
finish.pack()
您應該在另一個線程中運行後臺進程。你的單線程程序一次只能做一件事。當長時間運行的進程運行時,UI無法跟上。 – korylprince