Qt CheckBox 学习

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QLabel>
#include <QVector>
#include <QCheckBox>
#include <QGroupBox>

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 <QString>
#include <QLabel>
#include <QFont>
#include <QThread>
#include <QGroupBox>
#include <QGridLayout>
#include <QCheckBox>
#include <QPropertyAnimation>

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 <QtDebug>
#include <QApplication>

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

运行结果:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值