【问题标题】:How to remove title bar in Tkinter program?如何删除 Tkinter 程序中的标题栏?
【发布时间】:2018-03-29 08:00:20
【问题描述】:

我正在使用 Tkinter 库制作 GUI 的项目。此 GUI 将使用 raspberry pi 3 显示在触摸屏上。

我想阻止用户退出或最小化程序。 有什么方法可以禁用或删除标题栏?还是有更好的方法来实现这一目标?

【问题讨论】:

    标签: python tkinter raspberry-pi raspberry-pi3 titlebar


    【解决方案1】:

    既然您提到了树莓派,我想您使用的是 Linux。在这种情况下,您可以使用root.attributes('-type', 'dock')(假设您的 Tk 实例称为root)。这样,您的窗口将没有装饰(因此没有关闭或最小化按钮)并且将始终位于顶部。如果您不希望它始终位于顶部,则可以使用 type 'splash' 来代替。在任何情况下,您都需要使用focus_force 才能获得键盘焦点。

    import tkinter as tk
    
    root = tk.Tk()
    root.attributes('-type', 'dock')
    root.geometry('200x200')
    tk.Entry(root).pack()
    root.focus_force()
    root.mainloop()
    

    否则,您可以通过设置'WM_DELETE_WINDOW'协议来防止窗口被关闭,并在每次最小化时重新显示窗口:

    import tkinter as tk
    
    root = tk.Tk()
    
    def unmap(event):
        if event.widget is root:
            root.deiconify()
    
    root.protocol('WM_DELETE_WINDOW', lambda: None)  # prevent closing
    root.bind('<Unmap>', unmap)  # redisplay window when it's minimized
    
    root.mainloop()
    

    【讨论】:

      【解决方案2】:
      root = tk.Tk()
      root.wm_attributes('-type', 'splash')
      

      欲了解更多详情,请访问此链接:Remove titlebar without overrideredirect() using Tkinter?

      【讨论】:

        猜你喜欢
        • 2012-08-04
        • 2011-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-24
        • 2016-10-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多