Python 如何使tkinter标签背景透明?

Python 如何使tkinter标签背景透明?,python,colors,tkinter,label,transparent,Python,Colors,Tkinter,Label,Transparent,我有一个带有标签的窗口作为我的框架。我这样做是因为我想在背景中有一个图像。但是现在我在使用其他标签时遇到了麻烦。我用过的其他标签没有透明的背景。有没有办法使这些标签的背景透明 将Tkinter作为tk导入 root=tk.tk() root.title('背景图像') image1=Tk.PhotoImage(file='image\u name.gif') #获取图像大小 w=image1.width() h=图像1.高度() #将根窗口设置为图像的大小 根几何体(“%dx%d”%(w,h))

我有一个带有标签的窗口作为我的框架。我这样做是因为我想在背景中有一个图像。但是现在我在使用其他标签时遇到了麻烦。我用过的其他标签没有透明的背景。有没有办法使这些标签的背景透明

将Tkinter作为tk导入
root=tk.tk()
root.title('背景图像')
image1=Tk.PhotoImage(file='image\u name.gif')
#获取图像大小
w=image1.width()
h=图像1.高度()
#将根窗口设置为图像的大小
根几何体(“%dx%d”%(w,h))
#root没有图像参数,因此使用标签作为面板
panel1=tk.Label(根,图像=image1)
面板1.包装(侧面为“顶部”,填充为“两侧”,展开为“是”)
#在图像面板上放置按钮/标签以进行测试
label1=tk.Label(panel1,text='here i am')
标签1.包装(侧面=顶部)
button2=tk.按钮(面板1,text='button2')
按钮2.包装(侧边和顶部)
#启动事件循环
root.mainloop()

Tk中不支持透明背景。

我认为这会有所帮助,所有黑色都是透明的

root.wm_attributes('-transparentcolor','black')

如果您正在处理图像并将文本放入其中,我认为最方便的方法是使用
Canvas
widget

tkinter Canvas
小部件的方法有
。创建图像(x,y,image=image,options)
。创建文本(x,y,text=“Some text”,options)
使用以下方法:

from tkinter import *

main=Tk()
photo=PhotoImage(file='test.png')
Label(main,image=photo,bg='grey').pack()
#your other label or button or ...
main.wm_attributes("-transparentcolor", 'grey')
main.mainloop()
如果使用
bg='grey'
您可以在第7行中对其进行更改


祝你好运:)

我也这么认为。我也想这样做。使用
root.wm_属性('-transparentcolor',root['bg'])
使默认颜色透明。如果只使彩色小部件透明,这将是一个很好的解决方案,但它似乎使彩色小部件和所有较低的小部件透明。如果你能使一个提升的小部件透明,并看到比它低的小部件,那就太好了。你知道如何做到这一点吗?这就像一个使特定颜色透明的符咒,但有两个主要问题:a)像Gary02127说的那样,它使所有小部件透明,但不像看起来那样(至少在Windows 10上),它也使所有具有指定颜色的区域都可渗透。这不起作用。我已经试过了,但它不接受
-transparentcolor
作为第一个参数。\u tkinter.TclError:错误属性“-transparentcolor”:必须是-alpha,-fullscreen,-modified,-notify,-titlepath,-top,-transparentcolor:-transparentcolor:这很有趣,但它在整个应用程序中留下了一个漏洞,桌面在窗口后面可见。