2

我需要为在单独线程中运行的 tkinter 窗口生成虚拟事件。event_generate当 tkinter 在主线程中运行并且在另一个线程中生成事件时,从非 gui 线程调用应该是安全的并且运行良好。

出于某种原因,我需要生成事件的语句在主线程中运行(更具体地说,我希望这些语句位于模块的顶层)。

但是,当我root = Tk(); root.mainloop()在新线程和root.event_generate("<<my-event>>")主线程中进行操作时,会出现堆栈溢出。当我交换线程(root = Tk(); root.mainloop()在主线程和root.event_generate("<<my-event>>")新线程中)时,一切都会再次运行。

在我尝试生成事件之前,我已经注意 root 是完全构造的(并且也是空闲的)。

任何想法如何让这个设置工作?

(我使用的是 Python 3.2.3)

4

1 回答 1

1

自己找到了答案:只root.mainloop()放在辅助线程中,保留root = Tk()在主线程中。

于 2012-07-29T12:19:13.970 回答