【发布时间】:2012-12-28 17:39:46
【问题描述】:
我需要使用 Tkinter GUI 在多线程中运行一些简单的功能,所以我尝试了mtTkinter.
除了一个特殊的问题外,一切都很好:即使我只是启动 GUI,然后我关闭它而不触及任何东西,但某些线程仍在运行。
换句话说;我有这个代码:
from Tkinter import *
root = Tk()
#simple GUI code with buttons, labels, text and scrollbars widget
...
...
root.mainloop()
如果我运行此代码,则会出现 GUI,当我关闭它时,此 python 脚本会成功结束。
现在如果我用 mtTkinter 替换 Tkinter
from mtTkinter import *
root = Tk()
#simple GUI code with buttons, labels, text and scrollbars widget
...
...
root.mainloop()
GUI 再次出现,但如果我关闭它,仍然有一些来自 mtTkinter 的线程继续运行!
任何帮助将不胜感激,提前谢谢你,对不起我的英语不好!
【问题讨论】:
-
你可以做多线程功能,只需使用创建 Tcl 解释器的线程来更新 Tk 的 GUI 元素(这代表所有主要的 GUI 工具包)。不应该使用 mtTkinter。如果您需要进一步的帮助,请提供您拥有的实际代码。
-
非常难看的解决方法:os._exit(0)
-
@mmgp:你将如何启动非阻塞主循环?
-
你不会非阻塞地启动它。
-
您是否设置了守护进程标志? stackoverflow.com/questions/4330111/…
标签: python multithreading tkinter