我如何摆脱Python的Tkinter根窗口?

你知道一个聪明的方式来隐藏或以任何其他方式摆脱出现的Tk()打开的根窗口? 我只想使用一个正常的对话框。

我应该跳过对话框并把所有的组件放在根窗口中吗? 这是可能的还是可取的? 还是有更聪明的解决scheme?

很可能绝大多数基于tk的应用程序都将所有的组件放在默认的根窗口中。 这是最方便的方法,因为它已经存在了。 select隐藏默认窗口并创build自己的是一件非常好的事情,尽pipe它只需要一点额外的工作。

要回答关于如何隐藏它的具体问题,请使用根窗口的withdraw方法:

 import Tkinter as tk root = tk.Tk() root.withdraw() 

这些信息可以在Tkinter wiki上find

如果要使窗口再次可见,请调用deiconify (或wm_deiconify)方法。

 root.deiconify() 

一旦你完成了你正在创build的对话框,你可以使用destroy方法销毁根窗口以及所有其他的tkinter小部件:

 root.destroy() 

我没有testing,因为我没有任何Python / TKinter环境,但试试这个。

在纯Tk中有一种叫做“wm”的方法来pipe理窗口。 在那里你可以做一些类似“wm withdraw .mywindow”的地方,其中“.mywindow”是一个顶层。

在TkInter你应该可以做类似于:

 root = Tkinter.Tk() root.withdraw() # won't need this 

如果要使窗口再次可见,请调用deiconify (或wm_deiconify)方法。

 root.deiconify() 

在OSX上,iconify似乎更好:

 root = Tkinter.Tk() root.iconify() 

如果您不想在窗口创build时出现“闪现”,请使用以下细微的变化:

 import Tkinter as tk root = tk.Tk() root.overrideredirect(1) root.withdraw() 
Interesting Posts