2016-07-25 99 views
0

改变单选按钮的颜色,我想如果某些文件存在于目录检查后改变一个单选按钮的颜色,但也没能实现它,因为不知道配置-background color作品无线电按钮。TCL:如何在检查一定条件

下面是一个简单的代码看起来像

set topdir $path 

ttk::checkbutton .top.d.z.$t -text $v -variable s -command [list select_lib $v $elem $g $t] $t] \ 
     -value $v.kill -padx 2 -pady 2 
if {file exist $path/rc.log == 1} { 
    #change color to green in widget 
} else { 
    # retain same background of radio button 
} 

请提出的方法来实现这一目标。

+0

此外,测试应该是'{[文件存在$ PATH/rc.log]}',但我相信这只是演示代码。 –

+0

我想另一个问题是,你想改变单选按钮的颜色,还是你想改变它是否被选中? –

回答

1

OK,以感谢RLE和布拉德Lanam他们对维基TTK风格的描述。

创建并找到一个单选按钮:

pack [ttk::radiobutton .b -text foo] 

创建基于默认TRadiobutton风格自定义风格,背景设置为绿色:

ttk::style configure greenstyle.TRadiobutton -background green 

应用此风格的单选按钮开启背景绿色:

.b configure -style greenstyle.TRadiobutton 

恢复正常背景色:

.b configure -style TRadiobutton 

当一个主题插件改变颜色等,可决定改变

  • 默认样式(在这种情况下TRadiobutton):这会影响同一类型
  • 的所有控件
  • 甲子样式,如在该示例(greenstyle.TRadiobutton
  • 克隆的样式(参见here的示例)
  • 甲刮擦内置式(FO放在Windows上的C:\Tcl\lib\tk8.6\ttk目录中的示例):仅限于专家。

编辑布拉德·Lanam:

  • 背景:一切
  • 背后的整体背景颜色

    更多关于TTK ::单选按钮颜色

    一些定义信息

  • 前景:无线电文本的颜色标签
  • 指示器颜色:指示器的颜色。

这些选项可以使用ttk::style命令来设置:

ttk::style configure greenstyle.TRadiobutton -indicatorcolor lightgreen 
ttk::style map greenstyle.TRadiobutton -indicatorcolor \ 
    [list selected darkgreen pressed white] 

应用组和如上述复位。

文档: packttk::radiobutton (widget)Introduction to the Tk theme engineChanging Widget Colors (ttk::radiobutton)

+0

我很抱歉,实际上使用ttk:单选按钮,它不适合它。 ttk :: checkbutton .top.d.z。$ t -text $ v -variable s -command [list select_lib $ v $ elem $ g $ t] –

+1

@DanishSheikh:好的。主题小部件很难这样配置,而且我个人从未这样做。我会在今天晚些时候看看它,除非希望Brad Lanam能够马上登记并给你答案。 –

+0

感谢彼得.... –