这不是 Python tkinter mainloop not quitting on closing the window 的副本
我有一个基于 tkinter 构建的应用程序。我观察到有时在我使用 X 按钮关闭窗口后,代码不会通过 mainloop()
行执行。这种情况完全随机发生,概率约为 10%。其余时间,它就像一个魅力。请问有没有什么办法可以强制。正如我所说,mainloop()
行上的代码块,因此在它之后调用 sys.exit()
没有帮助。
我正在使用 Python 3.9.8。
这不是 100% 可重现的,但这里有一些可能会触发问题:
from tkinter import *
root = Tk()
Label(root, 'hi').pack()
mainloop()
print('exited')
最佳答案
我的第一个想法是使用 root.mainloop()
而不是 tkinter.mainloop()
。如果您使用多个窗口,这会有所不同。
也就是说,我很久以前在一些旧操作系统上看到过这个。从来没有弄清楚原因,所以我只是写了自己的退出函数,如下所示:
import tkinter as tk
def _quit():
root.quit()
root.destroy()
root = tk.Tk()
root.protocol("WM_DELETE_WINDOW", _quit)
tk.Label(root, 'hi').pack()
root.mainloop()
print('exited')
关于python - Tkinter mainloop() 关闭窗口后不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69960432/