我正在使用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/

10-08 22:03