2014-10-11 93 views

回答

6

添加按钮进入GroupBox和使用findChildren,在此之后,你可以使用QButtonGroup或者干脆通过所有按钮列表进行迭代,并检查radiobutton名。这是一种有效的方式,因为它可以与4个按钮或1000一起使用,如果您有许多按钮,则应该编写大代码。

void MainWindow::on_pushButton_15_clicked(){ 
    QButtonGroup group; 
    QList<QRadioButton *> allButtons = ui->groupBox->findChildren<QRadioButton *>(); 
    qDebug() <<allButtons.size(); 
    for(int i = 0; i < allButtons.size(); ++i) 
    { 
     group.addButton(allButtons[i],i); 
    } 
    qDebug() << group.checkedId(); 
    qDebug() << group.checkedButton(); 
} 
+0

谢谢,我有一个简单的问题与相同的问题有关:是否有可能为像setData()这样的每个单选按钮设置值。 – 2014-10-12 13:15:49

+0

@LionKing是的,文档说,你可以将setIcon和setText设置为按钮。 – Chernobyl 2014-10-12 13:22:53

+1

没问题,关于我的查询,我的意思是我想设置隐藏的值或数据到每个单选按钮,比如'setData()'函数以便稍后获取它。是否有可能这样做。 – 2014-10-12 13:28:57

0

四个ID的数值应该是连续的。鉴于此,调用GetCheckedRadioButton来确定选择哪一个。

+0

是Qt5中的GetCheckedRadioButton函数吗? – 2014-10-12 00:41:05

0

您可以使用所有qt按钮支持的'isChecked()'命令,并检查每个单选按钮。或者,您可以将一个函数连接到'切换(bool isChecked)'信号,并使用它来更新指示检查四个单选按钮中的哪一个的值。

+0

每个单选按钮的名称怎么样,如果每个单选按钮都有自己的名字,则不会有问题。 – 2014-10-12 00:45:59

+0

你应该在他们的标签说了什么之后为你的单选按钮命名,并在代码中跟踪它们。您可以使用[text()](http://qt-project.org/doc/qt-4.8/qabstractbutton.html#text-prop)命令,但您必须从任何地方选择您使用的单选按钮。 – SimLeek 2014-10-12 02:33:02