你知道一个聪明的方式来隐藏或以任何其他方式摆脱出现的根窗口,由Tk()
打开?我只想使用普通的对话框。如何摆脱Python Tkinter根窗口?
我应该跳过对话框并将所有组件放在根窗口中吗?这是可能的还是可取的?还是有更聪明的解决方案?
你知道一个聪明的方式来隐藏或以任何其他方式摆脱出现的根窗口,由Tk()
打开?我只想使用普通的对话框。如何摆脱Python Tkinter根窗口?
我应该跳过对话框并将所有组件放在根窗口中吗?这是可能的还是可取的?还是有更聪明的解决方案?
很可能绝大多数基于tk的应用程序都将所有组件放在默认根窗口中。这是最方便的方式,因为它已经存在。选择隐藏默认窗口并创建自己的是一件非常好的事情,但它只需要一点额外的工作。
要获得关于如何隐藏它的具体问题,使用根窗口的withdraw方法:
import Tkinter as tk
root = tk.Tk()
root.withdraw()
如果您想再次使窗口可见,调用deiconify(或wm_deiconify)方法。
root.deiconify()
一旦你与对话完成后,你可以用destroy方法的所有其他Tkinter的部件一起销毁根窗口:
root.destroy()
使用主窗口的窍门。谢谢! – 2009-09-11 14:57:31
因此,在StackOverflow中有使用.destroy(),tkinter.Toplevel(self).destroy(),quit(),tkinter.Toplevel(self).quit(),withdraw(),iconify()可供选择的解决方案。尼斯。除了没有一个工作...我做了“top_lev = tkinter.Toplevel(label); label.master.destroy(); label.destroy(); top_lev.destroy(); root = tkinter.Tk(); root.withdraw(); root.destroy()“,它像一个魅力(涉及一些讽刺)。 – 2017-03-21 08:03:47
@deusexmachina:如果你使用它们,它们都会工作,但它们都有不同的目的。虽然'.quit()'和'.destroy()'实际上是相同的。 – 2017-03-21 11:16:41
我还没有测试,因为我没有任何Python/TKinter环境,但试试这个。
在纯Tk中有一种名为“wm”的方法来管理窗口。在那里你可以做一些类似“wm withdraw .mywindow”的地方,其中“.mywindow”是一个顶层。如果您想再次使窗口可见,调用deiconify(或wm_deiconify)方法
root = Tkinter.Tk()
root.withdraw() # won't need this
:
在Tkinter的,你应该能够做类似的东西。
root.deiconify()
在OSX,图标化似乎更好的工作:
root = Tkinter.Tk()
root.iconify()
如果您不想在创建窗口时出现“闪光灯”,请使用以下轻微变化:
import Tkinter as tk
root = tk.Tk()
root.overrideredirect(1)
root.withdraw()
图片链接无效。 – 2009-09-10 17:08:42