【问题标题】:Toplevel in Tkinter: Prevent Two Windows from OpeningTkinter 中的顶层:防止两个窗口打开
【发布时间】:2013-02-24 12:45:52
【问题描述】:

假设我有一些简单的代码,如下所示:

from Tkinter import *
root = Tk()
app = Toplevel(root)
app.mainloop()

这会打开两个窗口:Toplevel(root) 窗口和 Tk() 窗口。

是否可以避免Tk() 窗口(@98​​7654325@)打开?如果是这样,怎么做?我只想要顶层。我希望这种情况发生,因为我正在制作一个可以打开多个窗口的程序,这些窗口都是 Toplevelroot

谢谢!

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    withdraw() 方法从屏幕上移除窗口。
    iconify() 方法最小化窗口,或将其变成一个图标。
    deiconify() 方法将重绘窗口,和/或激活它。

    如果您选择withdraw(),请确保您在测试前考虑了退出程序的新方法。
    例如

    from Tkinter import * # tkinter in Python 3
    
    root = Tk()
    root.withdraw()
    
    top = Toplevel(root)
    top.protocol("WM_DELETE_WINDOW", root.destroy)
    
    but = Button(top, text='deiconify')
    but['command'] = root.deiconify
    but.pack()
    
    root.mainloop()
    

    protocol() 方法可用于注册将在按下
    顶层窗口关闭按钮时调用的函数。在这种情况下,我们可以使用destroy() 退出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-17
      • 2013-09-18
      • 1970-01-01
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多