我正在使用Tkinter和线程编写应用程序。
我遇到的问题是,在关闭主应用程序后,某些线程仍在运行,并且我需要一种方法来检查根窗口是否已被破坏以避免TclError: can't invoke "wm" command
。
一旦根被销毁,我知道的所有方法:wminfo_exists()
和state()
都返回错误。
最佳答案
如果有人遇到相同的问题,我将为此添加解决方法。我遵循了here的建议。我拦截了Windows的关闭事件,以设置标记root
已死的标志,并在需要时检查该标志。
exitFlag = False
def thread_method():
global root, exitFlag
if not exitFlag:
// execute the code relate to root
def on_quit():
global exitFlag
exitFlag = True
root.destroy()
root.protocol("WM_DELETE_WINDOW", on_quit)
关于python Tkinter,检查根是否已被破坏?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20039096/