您知道一种聪明的方法来隐藏或以其他方式摆脱由Tk()
打开的根窗口吗?我只想使用普通的对话框。
我应该跳过对话框并将所有组件放在根窗口中吗?这是可能的还是可取的?还是有更聪明的解决方案?
您知道一种聪明的方法来隐藏或以其他方式摆脱由Tk()
打开的根窗口吗?我只想使用普通的对话框。
我应该跳过对话框并将所有组件放在根窗口中吗?这是可能的还是可取的?还是有更聪明的解决方案?
我没有测试过,因为我没有Python/TKinter环境,但你可以尝试这个方法。
在纯Tk中有一个名为"wm"的方法来管理窗口。你可以像这样做:"wm withdraw .mywindow",其中'.mywindow'是顶层窗口。
在TkInter中,你应该能够做类似这样的事情:
root = Tkinter.Tk()
root.withdraw() # won't need this
如果想要重新显示窗口,调用 deiconify (或 wm_deiconify) 方法即可。
root.deiconify()
root.deiconify()
来使窗口重新出现。 - Bryan Oakleyroot = Tkinter.Tk()
root.iconify()
如果你不想在创建窗口时出现“闪烁”,可以使用以下略微变化的方法:
import Tkinter as tk
root = tk.Tk()
root.overrideredirect(1)
root.withdraw()
我需要检查它是否被撤回,下面是解决方案。
import tkinter as tk
root = tk.Tk()
root.withdraw()
print(root.wm_state())
if root.wm_state() == 'withdrawn': # <----
root.iconify()
root.mainloop()
将窗口从屏幕上移除(不会销毁它)。要重新绘制窗口,请使用deiconify方法。当窗口被撤回时,状态方法返回"withdrawn"。
重新绘制窗口
将窗口变成图标(不会销毁它)。要重新绘制窗口,请使用deiconify方法。在Windows下,窗口将显示在任务栏中。当窗口被图标化时,状态方法返回
普通、图标化、撤回、图标
。
import Tkinter as tk
root = tk.Tk()
root.withdraw()
Or this one:
root = tk.Tk()
root.overrideredirect(1)
root.withdraw()
有两件事情不能忘记:
不要忘记导入类:
import tkinter as tk
将上述命令放置在主窗口中,在任何函数之外
tkinter
而不是Tkinter
。 - Delrius Euphoriaroot.deiconify()
root.withdraw()
对于 Python 3.0 及更高版本,要隐藏窗口,您需要编写以下代码:
import tkinter
tkinter.Tk().withdraw()
.quit()
和.destroy()
在实际上是相同的。 - Bryan Oakleydestroy()
的情况下,您可以将其用于任何小部件。仅当您在根窗口上调用它时,它才像.quit()
一样行为,即使这样也存在差异。只是大多数应用程序永远不会利用这些差异。 - Bryan Oakley