代码之家  ›  专栏  ›  技术社区  ›  Jonas Byström

如何摆脱python tkinter根窗口?

  •  49
  • Jonas Byström  · 技术社区  · 16 年前

    你知道一个隐藏的聪明方法吗?或者用任何其他方法去掉根窗口。 Tk() ?我只想使用普通对话框。

    我应该跳过对话框并将所有组件放到根窗口中吗?这是可能的还是可取的?还是有更智能的解决方案?

    4 回复  |  直到 7 年前
        1
  •  68
  •   Bryan Oakley    7 年前

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

    要回答有关如何隐藏它的特定问题,请使用 withdraw 根窗口的方法:

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

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

    root.deiconify()
    

    完成对话框后,可以使用 destroy 方法:

    root.destroy()
    
        2
  •  12
  •   Bryan Oakley    12 年前

    我没有测试过,因为我没有任何python/tkinter环境,但是试试这个。

    在纯tk中有一个名为“wm”的方法来管理窗口。在那里你可以做一些类似“wm withdraw.mywindow”的事情,其中“.mywindow”是顶级的。

    在tkinter中,您应该能够执行类似的操作:

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

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

    root.deiconify()
    
        3
  •  5
  •   qed    10 年前

    在OSX上,ICONIFY似乎工作得更好:

    root = Tkinter.Tk()
    root.iconify()
    
        4
  •  0
  •   BuvinJ Felix    8 年前

    如果您不希望在创建窗口时出现“闪烁”,请使用以下细微变化:

    import Tkinter as tk
    root = tk.Tk()
    root.overrideredirect(1)
    root.withdraw()
    
    推荐文章