如何删除Tkinter程序中的标题栏?

时间:2018-03-29 08:00:20

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

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

我想阻止用户退出或最小化程序。 有没有办法禁用或删除标题栏?或者有更好的方法来实现这一目标吗?

2 个答案:

答案 0 :(得分:3)

既然你提到了覆盆子pi,我想你正在使用Linux。在这种情况下,您可以使用root.attributes('-type', 'dock')(假设您的Tk实例名为root)。这样,您的窗口将没有装饰(因此没有关闭或最小化按钮)并且将始终位于顶部。如果您不希望它总是在最顶层,您可以使用类型' 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()

答案 1 :(得分:0)

root = tk.Tk()

root.wm_attributes(&#39; -type&#39;,&#39; splash&#39;)

有关详细信息,请转到此链接

Python/Tkinter: Remove titlebar without overrideredirect()