1
我使用Tkinter窗口來可視化我的程序的一些輸出。該窗口是螺紋(見下面的基本結構),基本上它工作得很好。到目前爲止,我在關閉窗口方面遇到困難。當我點擊「X」按鈕關閉它的窗口時,它就起作用了。但是,當我從啓動監視器線程的主程序中調用Monitor.close()方法時,窗口會凍結(例如,它不會在單擊「X」按鈕時發生反應),並且線程監視器繼續運行。因此,主程序不會退出。關閉線程Tkinter窗口
因此,目前,我還必須先點擊關閉按鈕然後點擊主程序,然後「手動」關閉窗口。這不是一個大問題,但如果主程序可以自行關閉窗口,那將會很棒。任何提示?
感謝和問候,
基督教
class Monitor(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.start()
def close(self):
self.root.quit()
self.root.destroy()
def run(self):
self.root=Tkinter.Tk()
self.root.protocol("WM_DELETE_WINDOW", self.close)
self.root.mainloop()
謝謝你的回答,我會ee到的!對我來說,一切都很有趣,例如,從主程序中調用draw()方法。 – Christian
線程問題與往常一樣。事情似乎工作得很好,直到他們停止這樣做,因爲你遇到了一些時間問題,競爭狀況,數據損壞或死鎖。 Tcl/Tk具有相當不錯的線程模型(基於消息傳遞,沒有共享狀態或GIL),而Python使用具有共享狀態的不同模型並像GIL那樣鎖定到處。混合這兩個可以工作,但有時不會。 – schlenk
感謝您的闡述! – Christian