Python/Tkinter:删除没有overrideredirect()的标题栏

D'A*_*rcy 8 python tkinter python-2.7

我目前正在使用Linux上的Tkinter和Python 2.7,我想知道是否有办法在TK()不使用的情况下删除窗口边框和标题栏overrideredirect(1).

我有自己的关闭按钮,overrideredirect(1)并向我提出了一些我不能接受的问题:

我无法使用attributes("-fullscreen", True)标题栏和边框保留.

pat*_*yts 12

窗口装饰全部由窗口管理器处理,因此您要做的是找到一种方法来告诉窗口管理器以不同于标准应用程序窗口的方式装饰窗口.Tk提供overrideredirect让窗口管理器完全忽略此窗口,但我们也可以使用扩展窗口管理器提示来声明此顶层窗口到窗口管理器的预期用途.例如,对于工具提示和闪屏窗口,这样做可以让管理员提供最小的装饰和可能的特殊动画.

在您的情况下,添加"启动"提示应该做你想要的

root = tk.Tk()
root.wm_attributes('-type', 'splash')
Run Code Online (Sandbox Code Playgroud)

你需要Tk 8.5或以上.

  • 感谢您的回复,这是用于Linux,Windows还是两者?我目前在Windows上使用Python 3.5和Tkinter 8.6,我得到这个错误:`_tkinter.TclError:错误#args:应该是"wm属性窗口?-alpha?double ???-transparentcolor?color ???-disabled ?bool ???-fullscreen?bool ?? -toolwindow?bool ?? -topmost?bool ??"`_ (3认同)
  • `-type`选项仅与X相关,因为它是X Window管理器使用的系统.提示359有详细信息(http://www.tcl.tk/cgi-bin/tct/tip/359.html).您可以检查`root.tk.call('tk','windowingsystem')`for"x11"并使用它来避免在其他系统上使用此功能. (3认同)
  • @uniqueNt如果你需要修改overrideredirect Tk窗口的windows风格,可以/sf/answers/2157336961/可以帮助你在Windows上. (2认同)

小智 5

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

像这样:

from tkinter import *

root=Tk()
root.wm_attributes('-fullscreen','true')
root.mainloop()
Run Code Online (Sandbox Code Playgroud)