【问题标题】:Tkinter Label background?Tkinter 标签背景?
【发布时间】:2015-07-30 17:18:41
【问题描述】:

我又遇到了 Tkinter 的一些问题。

如图所示,标签默认为灰色背景。现在我有一个标签集作为背景,由于显而易见的原因,我希望文本标签中的灰色消失。我怎样才能使标签的背景透明?

from Tkinter import *

# ***** Start of Gui *****
root = Tk()
root.title("Here could be your ad")
root.geometry("350x150")
root.minsize(350,150)
root.resizable(False, False)

# ***** Background *****
photo = PhotoImage(file="recycled.gif")
background_label = Label(root, image=photo)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
background_label.image = photo

# ***** Text *****
l1 = Label(root, text="Here could be your ad")
l2 = Label(root, text="Here could be your ad")
l3 = Label(root, text="Here could be your ad")
l4 = Label(root, text="Here could be your ad")

l1.grid(row=0, sticky=W)
l2.grid(row=1, sticky=W)
l3.grid(row=2, sticky=W)
l4.grid(row=3, sticky=W)

# ***** Variables for Input *****
var0 = StringVar()
var1 = StringVar()
var2 = StringVar()
var3 = StringVar()

# ***** Input Boxes *****
e1 = Entry(root, textvariable=var0)
e2 = Entry(root, textvariable=var1)
e3 = Entry(root, textvariable=var2)
e4 = Entry(root, textvariable=var3)

e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
e3.grid(row=2, column=1)
e4.grid(row=3, column=1)

#Button
b = Button(root, text="Here could be your ad", bg='blue')
b.grid(row=4, column=1)

root.mainloop()

【问题讨论】:

  • Tk 中没有“透明”颜色,所以我认为您必须创建一个透明 GIF 并将其用作背景。
  • 这样做时,透明会明显覆盖整个窗口,所以很遗憾这不是一个选项。

标签: python tkinter


【解决方案1】:

你不能。标签不支持透明度。

最好的解决方案可能是使用画布作为背景,并使用文本对象而不是标签,因为文本对象只绘制文本而不是背景。

【讨论】:

  • Canvas 与入口小部件的行为如何?
  • @Johnny:我不明白这个问题。它们的行为与其他所有小部件一样。我想它们在行为上最接近框架,并且您可以利用它们获得额外的好处。
  • 我的意思是,当我使用 Canvas 作为背景时,我还能像使用标签背景一样在画布上绘制条目小部件吗?
  • @Johnny:是的。就像我说的,它在这方面就像一个框架。
猜你喜欢
  • 2019-06-14
  • 2022-07-04
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 2015-07-22
  • 1970-01-01
相关资源
最近更新 更多