1

我正在尝试删除 tkinter 窗口的标题栏。我想制作一个自定义标题栏。我已经搜索了这个答案,我找到了这个。

import tkinter as tk
root = tk.Tk()
# eliminate the titlebar
root.overrideredirect(1)
# your code here ...
root.mainloop()

当我运行此代码时,代码运行没有错误,但没有显示窗口。如果我更换

root.overrideredirect(1)

root.overrideredirect(0)

然后它将显示一个正常的mac风格窗口,角落里有三个按钮。

编辑:我也试过这个

import tkinter as tk
root = tk.Tk()
# eliminate the titlebar

root.wm_attributes('-type', 'splash')

# your code here ...
root.mainloop()

这是我收到的错误消息

Traceback (most recent call last):
  File "no-bar.py", line 5, in <module>
    root.wm_attributes('-type', 'splash')
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/tkinter/__init__.py", line 1967, in wm_attributes
    return self.tk.call(args)
_tkinter.TclError: bad attribute "-type": must be -alpha, -fullscreen, -modified, -notify, -titlepath, -topmost, or -transparent

我该怎么做才能创建没有标题栏的 tkinter 窗口?

Python 3.8.1 MacOS 10.15.6

4

2 回答 2

2

编辑:这仅适用于 tk/tcl 版本 < macOS 上的 6.8.10

经过一番搜索,我找到了mac用户的答案。

如果你只使用

root.overrideredirect(1)

然后该窗口将在 Mac 上隐藏。因此,您需要再添加一行代码,使其看起来像这样

root.overrideredirect(1)
root.overrideredirect(0)

这将显示一个空白窗口。

mac上的tkinter空白窗口

于 2020-08-28T04:15:55.160 回答
0

尝试这个:

root.wm_attributes('-type', 'splash')

代替

root.overrideredirect(1)

我不确定这是否有效。另外,由于我不是 Mac 用户,因此无法对其进行测试。

于 2020-08-27T15:04:47.567 回答