如何将Label的bg颜色设置为无颜色(默认颜色)?

时间:2018-01-17 17:58:10

标签: python tkinter

我想知道如何将红色var D = new SortedDictionary<int, string>(); var qD = from kvp in D orderby kvp.Value select kvp ; 设置为无颜色。

例如,Label

我尝试了l=Label(root,text='color',bg='red'),但它不起作用。颜色保持不变。

是否有某些功能可以“取消配置”bg?

1 个答案:

答案 0 :(得分:2)

对于Windows(至少),只需设置l['bg'] = 'SystemButtonFace'即可。以下示例应独立于平台工作。

假设

  

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

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

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选项覆盖为默认选项:

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()