Qt CheckBox 学习

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include 
#include 
#include 
#include 
#include 

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();

public slots:
    void showToast();

private:
    QString vect[3];
    QGroupBox *GroupBox;
    QCheckBox *CheckBox1;
    QCheckBox *CheckBox2;
    QCheckBox *CheckBox3;
    QLabel *label;
    Ui::Widget *ui;
};

void msleep(int s);

#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    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);
    ui->setupUi(this);
}

void Widget::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();
}

Widget::~Widget()
{
    delete label;
    delete GroupBox;
    delete CheckBox1;
    delete CheckBox2;
    delete CheckBox3;
    delete ui;
}

main.cpp

#include "widget.h"
#include 
#include 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

运行结果:

Qt CheckBox 学习_第1张图片

你可能感兴趣的:(Qt)