我想知道如何设置一个Label从彩色到非彩色(或者说默认颜色)。
例如,我有一个标签l=Label(root,text='color',bg='red')。
我试过l.configure(bg=None)使它不着色,但它不起作用。标签的颜色保持不变。
有什么功能能起作用吗?
发布于 2018-01-17 18:23:39
对于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()发布于 2021-10-05 04:41:14
如果你希望你的背景红色是透明的(没有颜色),那么这个片段就能做到这一点。
至少在Windows上!
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()https://stackoverflow.com/questions/48307249
复制相似问题