如何让Tcl / Tk按钮像radiobuttons一样?

时间:2013-01-22 12:32:13

标签: button radio-button tcl tk

根据ActiveTcl 8.5文档:
ttk :: radiobutton小部件在组中用于显示或更改一组互斥选项。 Radiobuttons链接到Tcl变量,并具有相关值;单击radiobutton时,它会将变量设置为其关联值 更一般的定义:
您可以使用单选按钮进行互斥设置。单击一个会导致任何其他已按下的按钮弹出,就像在旧车收音机上一样。

我更喜欢使用按钮的外观而不是单选按钮。如何在一组按钮中实现无线电按钮的相同行为?
我在http://wiki.tcl.tk/17899上找到了关于切换按钮的信息,但这些按钮的行为更像是按钮。

任何见解真的很有用。谢谢

2 个答案:

答案 0 :(得分:1)

将radiobuttons的-indicatoron属性设置为false。

答案 1 :(得分:1)

您可以设置按钮的relief以保持其沉没。

set colours {red blue green}
foreach c $colours {
    pack [button .$c -text $c -command [list pushed $c]]
}

proc pushed colour {
    puts $colour
    set label [.$colour cget -text]
    foreach c $::colours {
        .$c configure -relief [expr {$c eq $label ? "sunken" : "raised"}]
    }
}