【问题标题】:Get index of checked radio button in group获取组中选中单选按钮的索引
【发布时间】:2016-02-21 21:46:51
【问题描述】:

我在一个组中有几个单选按钮,有没有办法获取当前选中项的索引?

现在我使用这个代码:

int getCheckedRadioButton(QWidget *w)
{
    int ii = 0;
    foreach (QRadioButton *button, w->findChildren<QRadioButton*>()) {
        if (button->isChecked()) {
            return ii;
        }
        ii++;
    }
    return -1;
}

效果很好,但也许有一个标准的 Qt 函数或方法可以做到这一点?

【问题讨论】:

    标签: c++ qt radio-button


    【解决方案1】:

    这是QButtonGroup 的用例。

    如果您还没有使用 QButtonGroup 将您的单选按钮分组。对于每个按钮,使用 QButtonGroup::addButton(button, id) 为您的按钮分配连续的 ID,从零开始。

    然后,要接收按钮的索引,请使用QButtonGroup::checkedId()。

    当您使用 Qt 设计器设计表单时,您可以通过选择按钮并从上下文菜单中选择“分配给按钮组”>“新建按钮组”来对按钮进行分组。但我认为您不能手动为组中的按钮分配 ID。相反,在setupUI 之后使用QButtonGroup::setId(button, id) 以更改自动分配的ID。 (它们有点令人困惑,从 -2 开始计算负数,我不知道设计师如何准确选择订单,所以我不建议依赖该订单。)

    【讨论】:

    • 非常好的答案!赞成票不公平,所以我想我会明确地说谢谢你写它:)
    • 同样出色的答案。对于新手来说,Qt 有太多的晦涩之处。你的回答让我无法做更多的工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 2021-12-29
    • 2011-05-24
    • 1970-01-01
    相关资源
    最近更新 更多