如何在tkd中轮询一组RadioButton小部件(Dink的Tinker)

时间:2016-03-10 15:01:03

标签: d tk

我为我的tkd界面制作了一个RadioButton小部件块,它完全按预期工作。但是,tkd的RadioButton的documentation没有显示如何确定按下哪个按钮。相反,示例代码仅显示如何创建链接在一起的按钮数组(即,一次只能选择一个)

// The radio button group parent.
auto frame = new Frame()
    .pack();    
auto option1 = new RadioButton(frame, "Foo")
    .setSelectedValue("foo")
    .select()
    .pack();    
auto option2 = new RadioButton(frame, "Bar")
    .setSelectedValue("bar")
    .pack();

CheckButton小部件是类似的,可以通过其关联的isChecked()方法进行轮询,但RadioButton似乎没有类似的东西。

如何检查是否已选择给定的RadioButton?

此外,有没有一种简单的方法来检查RadioButtons数组的哪个成员被选中,而不是自己迭代整个集合?

1 个答案:

答案 0 :(得分:0)

在阅读了更多文档之后,看来tkd通过一系列mixins实现了这个功能。

RadioButton类实现了here所描述的Value接口。

调用任何相关方法将允许访问整个按钮数组共享的状态变量。 E.g。

option1.getValue(); // Returns "Foo" if option 1 is selected, "Bar" if option 2 is.
option2.getValue(); // Same as above, since the value is shared.
option2.setValue("bar"); //Change value, without changing the selected button.