2011-04-21 159 views
0

是否可以修改單選按鈕的點的顏色(即只有鑽石/圓的填充顏色)? 我已經在使用經典主題,以獲得舊鑽石。但不幸的是,這些鑽石的填充顏色總是一些紅色,我需要明亮的綠色。Tcl/Tk中Radiobutton的顏色8.5

這可能嗎?也許通過創建一個「繼承/擴展」基本單選按鈕的小部件?

歡迎任何形式的建議。

親切的問候, mefiX

回答

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數據庫中設置此colot。

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 

您可以定義自己的TTK ::風格單選按鈕,並將其用於特定的小部件,如果你不想重新定義全局樣式:

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

+0

請注意,這不適用於所有平臺。 [JobsianMindTrick]但是,你不想在MacOS X上改變menubuttons的顏色。[/ JobsianMindTrick] – 2011-04-21 14:29:58

+0

不幸的是,這在TCL 8.5中並不適用。此外,您是否使用過Tk或Ttk? – mefiX 2011-04-26 14:02:32

+1

@mefiX我已經爲ttk添加了解決方案。 – GrAnd 2011-04-27 09:26:59