2012-07-28 66 views
1

我需要爲在單獨線程中運行的tkinter窗口生成虛擬事件。從非gui線程調用event_generate應該是安全的,它運行良好,當tkinter在主線程中運行並且事件在另一個線程中生成時。當tkinter在新線程中運行時使用`event_generate`

由於某種原因,我需要生成事件的語句在主線程中運行(更具體地說,我希望這些語句位於模塊的頂層)。

但是,當我在新線程root = Tk(); root.mainloop()root.event_generate("<<my-event>>")在主線程中,我得到堆棧溢出。當我交換線程時(主線程中的root = Tk(); root.mainloop()和新線程中的root.event_generate("<<my-event>>")),然後再次運行。

在我嘗試生成事件之前,我已經注意到根完全被解析(也是空閒的)。

任何想法如何讓這個設置工作?

(我使用Python 3.2.3)

回答

1

找到自己的答案:只放root.mainloop()在輔助線程,保持root = Tk()在主線程。

+0

該死的,Linux和OS X要求tkinter只能在主線程中運行:http://stackoverflow.com/a/1835036/261181 – Aivar 2012-07-31 18:23:24

相關問題