在Tkinter的Toplevel:防止打开两个Windows

Rus*_*hal 6 python tkinter

说我有一些简单的代码,像这样:

from Tkinter import *
root = Tk()
app = Toplevel(root)
app.mainloop()
Run Code Online (Sandbox Code Playgroud)

这将打开两个窗口:Toplevel(root)窗口和Tk()窗口.

是否可以避免Tk()窗口(root)打开?如果是这样,怎么样?我只想要顶级.我希望这种情况发生,因为我想提出一个计划,将有多个窗口打开,这是所有Toplevel的的root.

谢谢!

Hon*_*Abe 11

withdraw()方法从屏幕中删除窗口.
iconify()方法最小化窗口,或将其变为图标.
deiconify()方法将重绘窗口,和/或激活它.

如果您选择withdraw(),请确保在测试之前考虑了退出程序的新方法.
例如

from Tkinter import * # tkinter in Python 3

root = Tk()
root.withdraw()

top = Toplevel(root)
top.protocol("WM_DELETE_WINDOW", root.destroy)

but = Button(top, text='deiconify')
but['command'] = root.deiconify
but.pack()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

protocol()方法可用于注册在按下
Toplevel窗口的关闭按钮时将调用的函数.在这种情况下,我们可以使用destroy()退出.