7

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

import Tkinter as tk

root = tk.Tk()
root.title('background image')

image1 = Tk.PhotoImage(file='image_name.gif')

# get the image size
w = image1.width()
h = image1.height()

# make the root window the size of the image
root.geometry("%dx%d" % (w, h))

# root has no image argument, so use a label as a panel
panel1 = tk.Label(root, image=image1)
panel1.pack(side='top', fill='both', expand='yes')

# put a button/label on the image panel to test it
label1 = tk.Label(panel1, text='here i am')
label1.pack(side=Top)

button2 = tk.Button(panel1, text='button2')
button2.pack(side='top')

# start the event loop
root.mainloop()
4

4 回答 4

9

我认为它可以帮助,所有黑色将是透明的

root.wm_attributes('-transparentcolor','black')
于 2016-09-01T12:19:32.430 回答
8

Tk 中的透明背景不支持它。

于 2012-05-05T10:59:22.343 回答
3

如果您正在处理图像并将文本放在它们上面,最方便的方法是 - 我认为 - 使用Canvas小部件。

tkinter Canvas小部件具有方法.create_image(x, y, image=image, options).create_text(x, y, text="Some text", options)

于 2019-01-04T13:23:49.273 回答
2

用这个 :

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 行更改它

祝你好运 :)

于 2020-03-23T20:59:45.197 回答