在我的脚本中,我有时会调用我的 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/