python - 关闭 tkinter 窗口和消息框错误窗口

标签 python user-interface tkinter

在我的脚本中,我有时会调用我的 ErrorWindow 类来显示错误消息。这将创建一个空的 tkinter 窗口和一个 messagebox 错误窗口。我要么只想要 messagebox 窗口,要么希望在关闭错误窗口时自动关闭 tkinter 窗口。 我尝试了两段代码:

class ErrorWindow:
    def __init__(self,error_message):
        self.error_window = tk.Tk()
        messagebox.showerror("ERROR",error_message,command=self.close)
        self.error_window.protocol("WM_DELETE_WINDOW", self.close)
        self.error_window.mainloop()

    def close(self):
        self.error_window.destroy()

.

class ErrorWindow:
    def __init__(self,error_message):

        messagebox.showerror("ERROR",error_message) #automatically creates a tk window too

但即使使用第二个,在我关闭 messagebox 后,tkinter 窗口仍然存在。

如何对类进行编程,以便我只需按一次按钮(Ok 或窗口右上角的 X)即可关闭所有内容窗口(无论是一个还是两个)?

最佳答案

您需要退出主窗口:

class ErrorWindow:
    def __init__(self,error_message):
        if not tk._default_root: # check for existing Tk instance
            error_window = tk.Tk()
            error_window.withdraw()
        messagebox.showerror("ERROR",error_message)

这与类无关。您应该将其重新制作为一个简单的函数。

关于python - 关闭 tkinter 窗口和消息框错误窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43479827/

相关文章:

Python 在 Tkinter GUI Canvas 中附加文本

python - 内存溢出(?)在 tkinter 上崩溃

python - 具有归一化行的 2D 直方图

python - 如何使用 pyodbc 执行 MS Access 中保存的查询

java - 显示网格 Swing 定时器

python - 获取 Tkinter 条目小部件的内容

canvas - Tkinter 刷新/更新滚动条以适应 Canvas 内容

python - 将列表转换为 Pandas 数据框

python - 如何编译 Python 1.0

xml - Wix 工具集自定义 UI 查看器