Python 2.7:如何修改ttk.Checkbutton组件的标签颜色?
嗨Sebastian,你的问题出在ttk样式的配置方式上——你试图直接针对TCheckbutton的子元素label来配置样式,但ttk并不支持这种通过.label后缀的方式直接设置子元素属性哦。
正确的做法是直接对自定义的样式类Red.TCheckbutton设置foreground属性,这个属性会直接作用于复选框的标签文本。修改后的代码如下:
# -*- coding: utf-8 -*- import ttk import Tkinter as tk r = tk.Tk() s = ttk.Style() # 直接配置自定义样式类的foreground属性 s.configure('Red.TCheckbutton', foreground='red') cb = ttk.Checkbutton(master=r, style='Red.TCheckbutton', text='Test') cb.pack() r.mainloop()
如果你还想针对不同状态(比如选中、禁用时)设置不同的标签颜色,可以用map方法实现更细致的控制,示例代码如下:
s.map('Red.TCheckbutton', foreground=[('selected', 'darkred'), # 选中时的标签颜色 ('!selected', 'red'), # 未选中时的标签颜色 ('disabled', 'gray')]) # 禁用时的标签颜色
这样运行后,复选框的标签文本就会变成你想要的红色啦~
内容的提问来源于stack exchange,提问作者Sebastian Hoelzl
相关产品推荐
相关产品推荐

