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

时间:2016-09-16 10:46:52

标签: python python-2.7 tkinter

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

我有自己的关闭按钮,attributes("-fullscreen", True)向我提出了一些我无法接受的问题:

  • GUI始终位于顶部
  • 无法图标化,然后正确取消图标
  • 没有键盘输入,因此无法键入字段(请参阅HTTPBuilder

我无法使用set dfs.block.size=1073741824; select * from l_rate where CONVERSION_START_DATE='20160701' 作为标题栏并保留边框。

2 个答案:

答案 0 :(得分:11)

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

在您的情况下,添加一个' splash'提示应该做你想做的事情

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

您需要Tk 8.5或以上版本。

答案 1 :(得分:2)

您必须在命令之前提供根窗口名称。

像这样:

from tkinter import *

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