完整示例
转载自:https://blog.youkuaiyun.com/qq_20252351/article/details/94222366
效果展示:
代码部分
CheckBoxText.h
#ifndef CHECKBOXTEST_H
#define CHECKBOXTEST_H
#include <QWidget>
#include <QLabel>
#include <QVector>
#include <QCheckBox>
#include <QGroupBox>
QT_BEGIN_NAMESPACE
namespace Ui { class CheckBoxTest; }
QT_END_NAMESPACE
class CheckBoxTest : public QWidget
{
Q_OBJECT
public:
CheckBoxTest(QWidget *parent = nullptr);
~CheckBoxTest();
void msleep(int s);
//void showInfo();
public slots:
void showToast();
private:
Ui::CheckBoxTest *ui;
QString vect[3];
QGroupBox *GroupBox;
QCheckBox *CheckBox1;
QCheckBox *CheckBox2;
QCheckBox *CheckBox3;
QLabel *label;
};
#endif // CHECKBOXTEST_H
CheckBoxText.cpp
#include "checkboxtest.h"
#include "ui_checkboxtest.h"
#include<QDebug>
#include <QString>
#include <QLabel>
#include <QFont>
#include <QThread>
#include <QGroupBox>
#include <QGridLayout>
#include <QCheckBox>
#include <QPropertyAnimation>
CheckBoxTest::CheckBoxTest(QWidget *parent)
: QWidget(parent)
, ui(new Ui::CheckBoxTest)
{
ui->setupUi(this);
setGeometry(100, 100, 200, 100);
QGridLayout *GridLayout = new QGridLayout();
GroupBox = new QGroupBox();
CheckBox1 = new QCheckBox("qulu");
CheckBox2 = new QCheckBox("baobao");
CheckBox3 = new QCheckBox("xll");
label = new QLabel();
label->setGeometry(100,100,0,0);
label->setText("qulu baobao xll");
label->setAlignment(Qt::AlignCenter);
label->setFont(QFont("宋体",20,QFont::Bold));
GridLayout->addWidget(label);
GridLayout->addWidget(CheckBox1);
GridLayout->addWidget(CheckBox2);
GridLayout->addWidget(CheckBox3);
GroupBox->setLayout(GridLayout);
connect(CheckBox1, SIGNAL(clicked(bool)), this, SLOT(showToast()));
connect(CheckBox2, SIGNAL(clicked(bool)), this, SLOT(showToast()));
connect(CheckBox3, SIGNAL(clicked(bool)), this, SLOT(showToast()));
setLayout(GridLayout);
}
CheckBoxTest::~CheckBoxTest()
{
delete ui;
delete label;
delete GroupBox;
delete CheckBox1;
delete CheckBox2;
delete CheckBox3;
}
void CheckBoxTest::showToast()
{
if(CheckBox1->isChecked())
{
vect[0] = "qulu ";
}
else {
vect[0] = " ";
}
if(CheckBox2->isChecked())
{
vect[1] = "baobao ";
}
else {
vect[1] = " ";
}
if(CheckBox3->isChecked())
{
vect[2] = "xll";
}
else {
vect[2] = " ";
}
QString string = vect[0] + vect[1] + vect[2];
while(3 < string.length() && ' ' == string.at(0))
{
string.remove(0, 1);
}
label->setText(string);
label->show();
}
main()
#include "checkboxtest.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
CheckBoxTest w;
w.show();
return a.exec();
}