Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我是否需要逐个检查以了解Qt中的组中检查了哪个单选按钮_C++_Qt_Radio Button - Fatal编程技术网

C++ 我是否需要逐个检查以了解Qt中的组中检查了哪个单选按钮

C++ 我是否需要逐个检查以了解Qt中的组中检查了哪个单选按钮,c++,qt,radio-button,C++,Qt,Radio Button,我知道我可以使用这种代码来知道在Qt中选中了哪个单选按钮: int checkButton; if( ui->radioButton_0->isChecked() ){ checkButton = 0; }else if(ui->radioButton_1->isChecked()){ checkButton = 1; }else if ... 有没有更简单的方法来知道Qt中的组中选中了哪个单选按钮。我认为,当单选按钮组很大时,如果有这样一种更简单的方

我知道我可以使用这种代码来知道在Qt中选中了哪个单选按钮:

int checkButton;
if( ui->radioButton_0->isChecked() ){
    checkButton = 0;
}else if(ui->radioButton_1->isChecked()){
    checkButton = 1;
}else if 
...
有没有更简单的方法来知道Qt中的组中选中了哪个单选按钮。我认为,当单选按钮组很大时,如果有这样一种更简单的方法,那真的很有帮助。代码可能如下所示:

int checkbutton = groupName.getCheckButtonIngroup();

首先,您需要将所有单选按钮添加到按钮组。有两种方法可以做到这一点:

  • 在Qt Designer中,选择要添加的所有单选按钮,然后从关联菜单中选择
    分配给按钮组
  • 从代码中。创建一个新的QButtonGroup,并使用
    QButtonGroup::addButton
    在那里添加按钮
  • 然后,您可以随时了解选中的按钮:

  • 如果需要选中按钮的指针,请使用
    QButtonGroup::checkedButton

  • 如果需要多个按钮,则需要使用
    addButton(QAbstractButton*button,int-id)
    手动将按钮添加到组中。在此之后,使用
    QButtonGroup::checkedd
    获取选中按钮的标识符


  • 此外,我们还可以在Qt Designer的groupbox中放置一些单选按钮,然后查找groupbox的子项,将子项添加到buttonGroup,并使用checkedId或checkedButton方法

    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();
    }
    
    void主窗口::点击按钮按钮按钮按钮按钮按钮按钮()
    {
    QButtonGroup组;
    QList allButtons=ui->groupBox->findChildren();
    
    qDebug()
    QButtonGroup
    有一个函数
    buttons()
    ,它返回属于它的所有按钮的列表。你不能在该列表上循环吗?参考:另外,如果你只想要选中的按钮,这里有: