目录
一、界面布局介绍
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博客