如何删除一个tkinter窗口的边界,而不使其顶部?



我想制作一个带有tkinter的无边框小部件,让用户决定他们是否希望应用程序显示在其他程序之上。我知道,为了删除边框和工具栏,我可以使用root.overrideredirect(True)方法,但这也使窗口自动顶部,因为它使窗口管理器忽略小部件。因此,root.attributes("-topmost",False)root.wm_attributes("-topmost", False)命令不能工作。

是否有办法达到我所需要的?例如,隐藏窗口管理器装饰的另一种方法或在失去焦点时隐藏/恢复小部件的其他方法?顺便说一下,我使用的是Linux Mint 20.2 Cinnamon v5.0.5和Python 3.8.10。

from tkinter import *
root = Tk()
root.overrideredirect(True)      
root.resizable(False, False)
root.geometry("420x100")
root.attributes("-topmost", False)
#root.wm_attributes("-topmost", False)
exitbtn = Button(root, text='Exit',command=root.destroy)
exitbtn.pack(side=BOTTOM)
root.mainloop()

编辑:经过一番搜索,我发现root.wm_attributes('-type','splash')完全按照我想要的工作。但这似乎只适用于Linux。我如何在Windows上实现这一点?

我也有同样的问题,这对我有用:

Tkinter, Windows:如何在Windows任务栏中查看没有标题栏的窗口?

我是新来的,所以我不能评论。 编辑:我想这是为Windows准备的。我还没有在Linux上试过。

最新更新