我正在使用Tkinter库制作GUI的项目。该GUI将使用raspberry pi 3在触摸屏上显示。
我想阻止用户退出或最小化程序。 有没有办法禁用或删除标题栏?或者有更好的方法来实现这一目标吗?
答案 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;)
有关详细信息,请转到此链接