2016-09-16 271 views
3

我目前正在与Tkinter和Python 2.7在Linux上,我想知道是否有一种方法来删除TK()窗口边框和标题栏,而不使用overrideredirect(1)Python/Tkinter:删除标题栏没有overrideredirect()

我有自己的关闭按钮和overrideredirect(1)给我看,我不能接受的几个问题:

我不能使用attributes("-fullscreen", True)作为标题栏并保留边框。

回答

4

窗口装饰都是由窗口管理器处理的,所以你要做的是找到一种方法告诉窗口管理器装饰你的窗口与标准应用程序窗口不同。 Tk提供了overrideredirect让窗口管理器完全忽略此窗口,但我们也可以使用Extended Window Manager Hints来将此顶层窗口的预期用途声明给窗口管理器。例如对于工具提示和闪屏窗口来说,这可以让管理人员提供最少的装饰和可能的特殊动画。

在你的情况下,加入了“闪”提示应该做你想要

root = tk.Tk() 
root.wm_attributes('-type', 'splash') 

您需要以上Tk的8.5这个东西。

+0

感谢您的答复,这是在Linux,Windows或两者都使用?我目前在Windows上使用Python 3.5和Tkinter 8.6,并且我得到这个错误: '_tkinter.TclError:wrong#args:should be“wm attributes window?-alpha?double ???-transparentcolor?color ??? -disabled?bool ?? -fullscreen?bool ???-toolwindow?bool ???-topmost?bool ??“'_ _ –

+0

这真是太神奇了 - 只是在Linux上测试过它,它完美的工作! (到目前为止) –

+3

'-type'选项仅与X相关,因为它是X Window管理器使用的系统。提示359有详细信息(http://www.tcl.tk/cgi-bin/tct/tip/359.html)。您可以检查'root.tk.call('tk','windowingsystem')'“x11”,并使用它来避免在其他系统上使用此功能。 – patthoyts

0

你必须在你的命令前给你的根窗口名称。

像这样:

from tkinter import * 

root=Tk() 
root.wm_attributes('-fullscreen','true') 
root.mainloop()