QT入门Buttons之QCheckBox

目录

一、界面布局介绍

1、布局器中的位置及使用

2、常用属性

二、属性功能介绍

1、常用信号

2、测试信号stateChanged(int)

 3、组合框效果

三、Demo展示


此文为作者原创,转载标明出处!

一、界面布局介绍

1、布局器中的位置及使用

 QCheckBox复选框常用的属性是多个设置,允许多选存在

2、常用属性

        跟QPushButton属性类似,这边加入个注意事项,就是通常从界面中拖动个在designer默认是没有独占性的,就是默认是多选的,但是我们可以勾上如下的属性,就能设置成单选了,如下:

 F5试下,发现只能勾选上一个了

二、属性功能介绍

1、常用信号

 发现除了基本的点击信号之外,还有个stateChanged(int)

2、测试信号stateChanged(int)

        拖动两个QCheckBox在界面上,同时将界面中选中某一个右击转到槽,信号就选择stateChanged,同时对两个都进行这个操作,会发现xx.cpp文件中多了两个槽函数,此时我们就需要在槽函数中进行添加如下:

void MainWindow::on_checkBox_stateChanged(int arg1)
{
    if(arg1==Qt::CheckState::Checked)
    {
        ui->checkBox_2->blockSignals(true);
        ui->checkBox_2->setCheckState(Qt::CheckState::Unchecked);
        ui->checkBox_2->blockSignals(false);
    }
    else
    {
        qDebug()<<u8"check1未选中";
    }
}

void MainWindow::on_checkBox_2_stateChanged(int arg1)
{
    if(arg1 ==Qt::CheckState::Checked)
    {
        ui->checkBox->blockSignals(true);
        ui->checkBox->setCheckState(Qt::CheckState::Unchecked);
        ui->checkBox->blockSignals(false);
    }
    else
    {
        qDebug()<<u8"check2未选中";
    }
}

 3、组合框效果

可以加入组合框,使用QButtonGroup来测试下效果:

添加声明:

QButtonGroup *m_buttonGroup;

构造函数添加:

 m_buttonGroup = new QButtonGroup(this);
 m_buttonGroup->addButton(ui->checkBox, 0);
 m_buttonGroup->addButton(ui->checkBox_2, 1);
 m_buttonGroup->addButton(ui->checkBox_3, 2);

 connect(m_buttonGroup, SIGNAL(buttonClicked(int)),
              this, SLOT(btnGroupSlot(int)));

最后槽函数中:

void MainWindow::btnGroupSlot(int idbtn)
{
    if (m_buttonGroup->button(idbtn)->isChecked())
    {
       switch(idbtn)
       {
       case 0:
           qDebug("checkBox is checked.");
           break;
       case 1:
           qDebug("checkBox2 is checked.");
           break;
       case 2:
           qDebug("checkBox3 is checked.");
           break;
       default:
           break;
       }
    }
}

实现效果:

三、Demo展示

我放到精灵球中了:

 推荐博客:精灵球Plus介绍_清风徐来Groot的博客-CSDN博客

 百度云盘:链接:https://pan.baidu.com/s/11b634VvKMIsGdahyBLpZ3Q   提取码:6666 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值