17.Qt 单选框相关操作

目录

前言:

技能:

内容:

1. 布置界面

2.管理

3.槽函数

参考:


前言:

组合选择只能选择一个的单选框实现,以及管理组合单选框


技能:

内容:


1. 布置界面

先在ui界面中拖个GroupBox,再在GroupBox里面拖几个Radio Button,拖动完后自动就实现了被放在一个GroupBox里面的Radio Button只会有一个被选择到,右侧对象可以显示出父类情况

17.Qt 单选框相关操作_第1张图片

2.管理

首先了解到这个类可以方便管理多个Radio Button,具体了解可以看参考链接

回到头文件,添加代码,如果只有一个就不用用数组了,这里想用2个GroupBox,所以用数组

#include
#include

private:
    QButtonGroup *pGroup[2];

然后在MainWindow的构造函数中完成代码,解释在后

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    for(int i=0;i<2;i++)
     {
         pGroup[i]=new QButtonGroup(this);
     }

    pGroup[0]->addButton(ui->radioButton,1);
    pGroup[0]->addButton(ui->radioButton_2,2);
    pGroup[0]->addButton(ui->radioButton_3,3);

    connect(pGroup[0],SIGNAL(idClicked(int)),this,SLOT(p_group(int)));

    ui->radioButton_2->setChecked(true);
//其余的pGroup[]同理

}

先将所有pGroup初始化 

然后把想放在一起的Radio Button添加到一个pGroup里,后面的数字表示自定对这个按钮的int编号,这个编号会方便后面对按钮的管理

连接槽函数并完成槽函数void MainWindow::p_group(int id),这里手动代码完成和连接,可以参考这个的后半部分3、4点->在VS2022中使用QT,后面举例槽函数。需要注意的是,SIGNAL在参考链接视频里用的是SIGNAL(buttonClicked(int)),可能是版本更新,现在Qt6的想用按钮的编号直接操作没有那个函数了,有SIGNAL(idClicked(int))

最后确认初始的选择是哪个按钮,也可以不做这个,刚开始无确认值

17.Qt 单选框相关操作_第2张图片

3.槽函数

管理下可以实现很多功能,比如知道哪个按钮被点击,代码如下

void MainWindow::p_group_0(int id)
{
    QString res;
    if(id>=1 && id<3)
    {
        res=QString("分组1的radio %1").arg(id);
    }

    //qDebug()<label_2->setText(res);
}

哪个按钮被点,这里槽函数的参数就是之前编好号的哪个,并在label中输出对应的文本 ,

这一个槽函数可以管理所有按钮,只是每个GroupBox都需要connect()到这个函数,所以可以限制编号大小来确定是哪个GroupBox,当然也可以分开单独实现

17.Qt 单选框相关操作_第3张图片

参考:

【Qt学习系列】17_Qt单选框

你可能感兴趣的:(QT学习记录与资源提供,qt,数据库,开发语言,ui,visualstudio)