如何使 Tcl/Tk 按钮的行为类似于单选按钮



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

我真的很喜欢使用按钮的外观而不是单选按钮。如何在一组按钮中实现与单选按钮相同的行为?
我在 http://wiki.tcl.tk/17899 上发现了关于切换按钮的信息,但它们的行为更像是复选按钮。

任何见解都非常受人赞赏。谢谢

您可以设置按钮的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"}]
    }
}

将单选按钮的 -indicatoron 属性设置为 false。

相关内容

  • 没有找到相关文章

最新更新