tkinter showerror 创建空白 tk window

tkinter showerror creating blank tk window

我有一个程序需要向用户显示图形错误消息。这是一个 tkinter GUI,所以我使用 tkinter.messagebox.showerror

当我调用 showerror 时,它会显示错误,但也会创建一个空白 "tk" window,当调用 Tk class 的实例时创建的那种,例如 root = Tk().

from tkinter.messagebox import showerror
showerror(title = "Error", message = "Something bad happened")

生产

如何让这个空白window不出现?

from Tkinter import *
from tkMessageBox import showerror
Tk().withdraw()
showerror(title = "Error", message = "Something bad happened")

在显示错误消息之前调用 Tk().withdraw() 将隐藏根 window。

注意:from tkinter import * 代表 Python 3.x

this 回答中所述,在我们创建更多 widgets/dialogs 之前,Tkinter 需要根目录 window。如果没有根 window,tkinter 会创建一个。因此,要使空白 window 消失,首先我们需要自己创建一个根 window,将其隐藏并在对话操作完成后将其销毁。下面的示例代码

from tkinter import Tk
from tkinter.messagebox import showerror

root = Tk()
root.withdraw()
showerror(title = "Error", message = "Something bad happened")
root.destroy()

注意:这适用于您只需要显示一个对话框而没有其他 window 存在的情况。