如何去掉Python Tkinter根窗口?
你知道有什么聪明的方法可以隐藏或者处理掉那个由 Tk()
打开的主窗口吗?我只想用一个普通的对话框。
我是不是应该跳过对话框,把我所有的组件放在主窗口里?这样可以吗?或者说这样做好不好?还是有更聪明的解决办法呢?
8 个回答
11
在OSX系统上,图标化功能似乎效果更好:
root = Tkinter.Tk()
root.iconify()
15
我没有测试过,因为我没有Python/TKinter的环境,但你可以试试这个。
在纯Tk中,有一个叫“wm”的方法用来管理窗口。你可以像这样使用:“wm withdraw .mywindow”,其中“.mywindow”是一个顶层窗口。
在TkInter中,你应该能做类似的事情:
root = Tkinter.Tk()
root.withdraw() # won't need this
如果你想让窗口再次可见,可以调用deiconify(或者wm_deiconify)方法。
root.deiconify()
129
大多数基于tk的应用程序都会把所有的组件放在默认的根窗口里。这是最方便的做法,因为这个窗口已经存在了。如果你选择隐藏这个默认窗口,自己创建一个新的窗口,这也是完全可以的,只是需要多花一点小功夫。
关于你具体问的怎么隐藏这个窗口,可以使用根窗口的 withdraw 方法:
import Tkinter as tk
root = tk.Tk()
root.withdraw()
如果你想让窗口再次可见,可以调用 deiconify(或者 wm_deiconify)方法。
root.deiconify()
当你完成对话框的操作后,可以使用 destroy 方法来销毁根窗口和其他所有的tkinter组件:
root.destroy()