我有一个程序需要向用户显示图形错误消息。它是一个tkinter GUI,所以我使用的是tkinter.messagebox.showerror
当我调用showerror时,它会显示错误,但也会创建一个空白的“tk”窗口,这是在调用Tk类实例时创建的类型,如root = Tk()
。
from tkinter.messagebox import showerror
showerror(title = "Error", message = "Something bad happened")
可生产
如何才能显示此空白窗口?
答案 0 :(得分:7)
<div>
<li>Top Level 1
<ul>
<li>sub 1a</li>
<li>sub 1b</li>
<li>sub 1c</li>
<li>sub 1d</li>
</ul>
</li>
<li>Top Level 2
<ul>
<li>sub 2a</li>
<li>sub 2b</li>
<li>sub 2c</li>
<li>sub 2d</li>
</ul>
</li>
</div>
在显示错误消息之前调用from Tkinter import *
from tkMessageBox import showerror
Tk().withdraw()
showerror(title = "Error", message = "Something bad happened")
将隐藏根窗口。
注意:Python 3.x的Tk().withdraw()
答案 1 :(得分:2)
正如this答案中所述,Tkinter需要一个根窗口,然后我们才能创建更多小部件/对话框。如果没有根窗口,则tkinter将创建一个。因此,要使空白窗口消失,首先,我们需要自己创建一个根窗口,将其隐藏起来,并在完成对话框操作后销毁它。下面的示例代码
from tkinter import Tk
from tkinter.messagebox import showerror
root = Tk()
root.withdraw()
showerror(title = "Error", message = "Something bad happened")
root.destroy()
注意:仅在需要显示对话框且不存在其他窗口时适用。