#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//窗口的尺寸自动根据内容缩到最小,同时设置死窗口尺寸
this->setFixedSize(minimumSize());
//连接checkBox的 选中状态的的信号,槽函数是自定义的
connect(ui->checkBox_2,&QCheckBox::stateChanged,this,&Widget::onstateChanged);
connect(ui->checkBox_3,&QCheckBox::stateChanged,this,&Widget::onstateChanged);
connect(ui->checkBox_4,&QCheckBox::stateChanged,this,&Widget::onstateChanged);
connect(ui->checkBox_5,&QCheckBox::stateChanged,this,&Widget::onstateChanged);
connect(ui->checkBox_6,&QCheckBox::stateChanged,this,&Widget::onstateChanged);
}
Widget::~Widget()
{
delete ui;
}
void Widget::onstateChanged()
{
QString s;
bool checkBox_2= ui->checkBox_2->isChecked();
bool checkBox_3= ui->checkBox_3->isChecked();
bool checkBox_4= ui->checkBox_4->isChecked();
bool checkBox_5= ui->checkBox_5->isChecked();
bool checkBox_6= ui->checkBox_6->isChecked();
if(checkBox_2 && checkBox_3 && checkBox_4 && checkBox_5 && checkBox_6)
{
//全部被选中
ui->checkBox->setCheckState(Qt::Checked);
}
else if(!(checkBox_2 || checkBox_3 || checkBox_4 || checkBox_5 || checkBox_6))
{
// 全部未选中
ui->checkBox->setCheckState(Qt::Unchecked);
}
else if(checkBox_2 || checkBox_3 || checkBox_4 || checkBox_5 || checkBox_6)
{
//部分选中
ui->checkBox->setCheckState(Qt::PartiallyChecked);
}
if(checkBox_2)
{
s+=ui->checkBox_2->text();
}
if(checkBox_3)
{
s+=ui->checkBox_3->text();
}
if(checkBox_4)
{
s+=ui->checkBox_4->text();
}
if(checkBox_5)
{
s+=ui->checkBox_5->text();
}
if(checkBox_6)
{
s+=ui->checkBox_6->text();
}
ui->lineEdit->setText(s);
}
void Widget::on_checkBox_clicked()
{
//设置成只有2种选中状态
ui->checkBox->setTristate(false);
//返回checkBox的是什么状态
int a= ui->checkBox->checkState();
//如果是选中状态
if(a==Qt::Checked)
{
ui->checkBox_2->setChecked(true);
ui->checkBox_3->setChecked(true);
ui->checkBox_4->setChecked(true);
ui->checkBox_5->setChecked(true);
ui->checkBox_6->setChecked(true);
}
else
{
ui->checkBox_2->setChecked(false);
ui->checkBox_3->setChecked(false);
ui->checkBox_4->setChecked(false);
ui->checkBox_5->setChecked(false);
ui->checkBox_6->setChecked(false);
}
}
评论0