Tkinter创建带有透明背景的覆盖屏幕的画布

3

我正在创建一个使用没有窗口的小部件,通过设置 topmost 属性来覆盖屏幕上的所有内容的画布。

然而,我想要一个透明的背景。

这是我的代码:

import Tkinter

vsize = vw, vh = 600, 350

w = Tkinter.Canvas(width=vw, height=vh, highlightthickness=0)
w.master.overrideredirect(True)
w.master.geometry("+0+0")
w.master.lift()
w.master.wm_attributes("-topmost", True)
w.master.wm_attributes("-disabled", True)
w.create_rectangle(0, 0, vw, vh, fill="black")
w.pack()
w.mainloop()

我尝试在画布上添加以下属性,并将stipple="gray25"添加到矩形中:

我尝试在画布上添加以下属性,并将stipple="gray25"添加到矩形中:

w.master.wm_attributes("-transparentcolor", "gray")

由于某些原因,这并没有使灰色透明,即使它可以正常工作,使用画点线却会看起来很糟糕。

有人有实现这一点的想法吗?

编辑:

我尝试将背景配置为黑色,并赋予一些透明度,但我只希望背景是黑色的,以便在画布内放置不透明的项目。

w.configure(background="black")
w.master.wm_attributes("-alpha", 0.5)

你可能想看一下Qt https://dev59.com/MIPba4cB1Zd3GeqPuJMh - Most Wanted
1个回答

3

我认为在Tkinter中目前没有实现这个的方法。

如果你想在屏幕上叠加东西,为什么不使用放置在屏幕上的单独窗口呢?否则,我建议你在Tkinter之外寻找其他解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接