首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将标签的bg颜色设置为无颜色(默认颜色)?

问如何将标签的bg颜色设置为无颜色(默认颜色)?
EN

Stack Overflow用户
提问于 2018-01-17 17:58:09
回答 2查看 1.6K关注 0票数 3

我想知道如何设置一个Label从彩色到非彩色(或者说默认颜色)。

例如,我有一个标签l=Label(root,text='color',bg='red')。

我试过l.configure(bg=None)使它不着色,但它不起作用。标签的颜色保持不变。

有什么功能能起作用吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-17 18:23:39

对于windows(至少),只需设置l['bg'] = 'SystemButtonFace'。下面的例子应该是独立于平台的。

假设

我想知道如何将红色标签设置为无颜色。

你的意思是重置回默认的颜色。一个简单的方法是创建一个新标签,获取它的bg,删除它,然后将该颜色放到实际的标签上:

代码语言:javascript
复制
import tkinter as tk

def default_bg_color():
    global root, l
    _dummy_lbl = tk.Label(root)
    l['bg'] = _dummy_lbl['bg']
    _dummy_lbl.destroy()


root = tk.Tk()

l = tk.Label(root, text="This is the red label.", bg='red')

btn = tk.Button(root, text="Default color!", command=default_bg_color)

l.pack()
btn.pack()
root.mainloop()

另外,请参见下面的示例,该示例在按下按钮时将任何小部件的bg选项覆盖到其默认值:

代码语言:javascript
复制
import tkinter as tk


def default_bg_color(widget):

    _ = widget.__class__(widget.master)
    widget['bg'] = _['bg']
    _.destroy()


if __name__ == '__main__':

    root = tk.Tk()

    # tk.Label can be replaced with any widget that has bg option
    label = tk.Label(root, text="This is the red label.", bg='red')
    btn = tk.Button(root, text="Default color!")
    btn['command'] = lambda widget=label: default_bg_color(widget)

    label.pack()
    btn.pack()
    root.mainloop()
票数 2
EN

Stack Overflow用户

发布于 2021-10-05 04:41:14

如果你希望你的背景红色是透明的(没有颜色),那么这个片段就能做到这一点。

至少在Windows上!

代码语言:javascript
复制
import tkinter as tk

parent = tk.Tk()

parent.attributes('-transparentcolor', 'red')

red = tk.Label(parent, text = '   color    \n    is    \n    transparent    ', bg = 'red')
red.pack()

parent.mainloop()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48307249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档