【QT】常用控件——按钮组

继承Widget

PushButton

【QT】常用控件——按钮组_第1张图片

设置图片,先导入图片资源,见:【QT】资源文件导入_复制其他项目中的文件到qt项目中_StudyWinter的博客-CSDN博客

在布局中添加图片

【QT】常用控件——按钮组_第2张图片

【QT】常用控件——按钮组_第3张图片

调整尺寸

【QT】常用控件——按钮组_第4张图片

toolButton

显示图片、文本

【QT】常用控件——按钮组_第5张图片

显示图片(图片和文字都有时,显示图片)

【QT】常用控件——按钮组_第6张图片

显示文字

【QT】常用控件——按钮组_第7张图片

透明

【QT】常用控件——按钮组_第8张图片

RadioButton 

单选按钮

【QT】常用控件——按钮组_第9张图片

【QT】常用控件——按钮组_第10张图片

四个中只能选一个,布局

【QT】常用控件——按钮组_第11张图片

默认选择一个,先改名

【QT】常用控件——按钮组_第12张图片

执行

【QT】常用控件——按钮组_第13张图片

捕获用户的选择

【QT】常用控件——按钮组_第14张图片

代码

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 单选按钮,默认选中男
    ui->rBtn_man->setChecked(true);
    // 监听用户选择女
    connect(ui->rBtn_woman, &QRadioButton::clicked, this, [=]() {
        qDebug() << "选择女";
    });
}

Widget::~Widget()
{
    delete ui;
}

用户最终的选择

【QT】常用控件——按钮组_第15张图片

加一个性别参数

【QT】常用控件——按钮组_第16张图片

代码

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 单选按钮,默认选中男
    ui->rBtn_man->setChecked(true);
    this->gender = true;
    // 监听用户选择女

    connect(ui->rBtn_woman, &QRadioButton::clicked, this, [=]() {
        this->gender = false;
    });

    connect(ui->rBtn_man, &QRadioButton::clicked, this, [=]() {
        this->gender = true;
    });

    connect(ui->commit, &QRadioButton::clicked, this, [=]() {
        if (gender == true) {
            qDebug() << "选择的是男性";
        } else {
            qDebug() << "选择的是女性";
        }
    });


}

Widget::~Widget()
{
    delete ui;
}

结果

【QT】常用控件——按钮组_第17张图片

CheckBox 

复选按钮

【QT】常用控件——按钮组_第18张图片

【QT】常用控件——按钮组_第19张图片

监听价格实惠是否被选中,

法一:同样加属性

【QT】常用控件——按钮组_第20张图片

代码

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 单选按钮,默认选中男
    ui->rBtn_man->setChecked(true);
    this->gender = true;
    // 监听用户选择女

    connect(ui->rBtn_woman, &QRadioButton::clicked, this, [=]() {
        this->gender = false;
    });

    connect(ui->rBtn_man, &QRadioButton::clicked, this, [=]() {
        this->gender = true;
    });

    connect(ui->commit, &QRadioButton::clicked, this, [=]() {
        if (gender == true) {
            qDebug() << "选择的是男性";
        } else {
            qDebug() << "选择的是女性";
        }
    });




    connect(ui->checkBox_2, &QRadioButton::clicked, this, [=]() {
        str = "价格实惠";
    });

    connect(ui->commit, &QRadioButton::clicked, this, [=]() {
        if (str == "价格实惠") {
            qDebug() << "选择的是价格实惠";
        }
    });





}

Widget::~Widget()
{
    delete ui;
}

结果

【QT】常用控件——按钮组_第21张图片

法二:

使用checkbox特有的信号

【QT】常用控件——按钮组_第22张图片

选中是2,取消是0

【QT】常用控件——按钮组_第23张图片

代码

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 单选按钮,默认选中男
    ui->rBtn_man->setChecked(true);
    this->gender = true;
    // 监听用户选择女

    connect(ui->rBtn_woman, &QRadioButton::clicked, this, [=]() {
        this->gender = false;
    });

    connect(ui->rBtn_man, &QRadioButton::clicked, this, [=]() {
        this->gender = true;
    });

    connect(ui->commit, &QRadioButton::clicked, this, [=]() {
        if (gender == true) {
            qDebug() << "选择的是男性";
        } else {
            qDebug() << "选择的是女性";
        }
    });




    connect(ui->checkBox_2, &QCheckBox::stateChanged, this, [=](int state) {
        qDebug() << state;
    });




}

Widget::~Widget()
{
    delete ui;
}

法一:代码:怎么没有1呢,半选中状态

ui->checkBox_2->setTristate(true);        // 第三种状态,半选中

【QT】常用控件——按钮组_第24张图片

法二:√

【QT】常用控件——按钮组_第25张图片

最好使用一种(代码或者控件),防止凌乱。

你可能感兴趣的:(QT,qt,开发语言,keep,studying,学习)