【发布时间】:2021-03-16 17:25:00
【问题描述】:
当我关闭父窗口忽略消息框时,Tkinter 消息框生成异常。
import tkinter as tk
from tkinter import messagebox
root = tk.Tk()
root.geometry("100x100")
w = tk.Label(root, text="I am root")
w.pack()
messagebox.showerror("Message Box", "Error")
root.mainloop()
这很痛苦,因为我想在根窗口关闭后进行处理。我看不到任何使消息框窗口模式化的方法。我可以设置自己的对话框,但如果可以的话,我宁愿使用标准的现成代码。
【问题讨论】:
-
如何复制该异常?我可以正确关闭窗口或消息框。
-
在Thonny中打开上面的代码。点击运行按钮。忽略前面的消息框。点击它后面灰色窗口的关闭按钮。错误是:_tkinter.TclError:无法调用“grab”命令:应用程序已被破坏。我在终端和空闲时得到相同的结果。我希望这是一个已知的错误。最好还是一个固定的已知错误。谷歌似乎没有帮助。我正在使用 Python 3.8.5 和 Xubuntu 20.04。