Radiobutton在Tcl / Tk中的颜色8.5

时间:2011-04-21 11:14:55

标签: tcl tk

是否可以修改radiobutton点的颜色(即只有钻石/圆的填充颜色)? 我已经在使用经典主题,以获得旧钻石。但不幸的是,这些钻石的填充颜色总是有点红,我需要亮绿色。

这可能吗?也许通过创建一个“继承/扩展”基本单选按钮的自己的小部件?

欢迎任何建议。

亲切的问候, mefiX

1 个答案:

答案 0 :(得分:3)

radiobutton命令有-selectcolor选项。只需指定此选项的颜色即可。

set a 1
radiobutton .b1 -selectcolor green -variable a -value 1 -text "Option 1"
radiobutton .b2 -selectcolor green -variable a -value 2 -text "Option 2"
radiobutton .b3 -selectcolor green -variable a -value 3 -text "Option 3"
pack .b1 .b2 .b3

如果您不想单独指定每个单选按钮的颜色,可以在xresources数据库中设置此颜色。

option add *Radiobutton.selectColor green
set a 1
radiobutton .b1 -variable a -value 1 -text "Option 1"
radiobutton .b2 -variable a -value 2 -text "Option 2"
radiobutton .b3 -variable a -value 3 -text "Option 3"
pack .b1 .b2 .b3

编辑:ttk的解决方案:

ttk::style theme use classic
ttk::style map TRadiobutton -indicatorcolor {pressed #d9d9d9 selected green}
set a 1
ttk::radiobutton .b1 -variable a -value 1 -text "Option 1"
ttk::radiobutton .b2 -variable a -value 2 -text "Option 2"
ttk::radiobutton .b3 -variable a -value 3 -text "Option 3"
pack .b1 .b2 .b3

如果您不想重新定义全局样式,可以为radiobutton定义自己的ttk :: style并将其用于特定小部件:

ttk::style layout TRadiobuttonGreen [ttk::style layout TRadiobutton]
ttk::style configure TRadiobuttonGreen {*}[ttk::style configure TRadiobutton]
ttk::style map TRadiobuttonGreen {*}[ttk::style map TRadiobutton] -indicatorcolor {pressed #d9d9d9 selected green}

ttk::radiobutton .b1 -style TRadiobuttonGreen -variable a -value 1 -text "Option 1"
...

Screenshot