1
我正在做一些程序,其中包括while循環(以說明一些數字計算),當我使用GUI的Tkinter時,程序窗口凍結,直到循環結束。我想添加一個停止按鈕,我希望窗口不要凍結。我怎麼做這兩件事?Tkinter在循環處理過程中凍結,我如何防止它?
謝謝
我正在做一些程序,其中包括while循環(以說明一些數字計算),當我使用GUI的Tkinter時,程序窗口凍結,直到循環結束。我想添加一個停止按鈕,我希望窗口不要凍結。我怎麼做這兩件事?Tkinter在循環處理過程中凍結,我如何防止它?
謝謝
您將不得不使用單獨的線程或進程。 Tkinter使用單個線程來處理顯示更新,並使用相同的線程來執行事件回調。如果你的事件處理程序阻塞,那麼在完成之前不會執行Tkinter代碼。
如果你有Tkinter的線程(即調用Tk.mainloop
的一個),而另一個線程應用程序的其餘部分,則Tkinter的線程中運行的事件處理程序可以簡單地傳遞消息(可能使用Queue.Queue
)到您的應用程序事件處置。