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


    继承Widget

    PushButton

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

    在布局中添加图片

    调整尺寸

    toolButton

    显示图片、文本

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

    显示文字

    透明

    RadioButton 

    单选按钮

    四个中只能选一个,布局

    默认选择一个,先改名

    执行

    捕获用户的选择

    代码

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. #include
    4. Widget::Widget(QWidget *parent)
    5. : QWidget(parent)
    6. , ui(new Ui::Widget)
    7. {
    8. ui->setupUi(this);
    9. // 单选按钮,默认选中男
    10. ui->rBtn_man->setChecked(true);
    11. // 监听用户选择女
    12. connect(ui->rBtn_woman, &QRadioButton::clicked, this, [=]() {
    13. qDebug() << "选择女";
    14. });
    15. }
    16. Widget::~Widget()
    17. {
    18. delete ui;
    19. }

    用户最终的选择

    加一个性别参数

    代码

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. #include
    4. Widget::Widget(QWidget *parent)
    5. : QWidget(parent)
    6. , ui(new Ui::Widget)
    7. {
    8. ui->setupUi(this);
    9. // 单选按钮,默认选中男
    10. ui->rBtn_man->setChecked(true);
    11. this->gender = true;
    12. // 监听用户选择女
    13. connect(ui->rBtn_woman, &QRadioButton::clicked, this, [=]() {
    14. this->gender = false;
    15. });
    16. connect(ui->rBtn_man, &QRadioButton::clicked, this, [=]() {
    17. this->gender = true;
    18. });
    19. connect(ui->commit, &QRadioButton::clicked, this, [=]() {
    20. if (gender == true) {
    21. qDebug() << "选择的是男性";
    22. } else {
    23. qDebug() << "选择的是女性";
    24. }
    25. });
    26. }
    27. Widget::~Widget()
    28. {
    29. delete ui;
    30. }

    结果

    CheckBox 

    复选按钮

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

    法一:同样加属性

    代码

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. #include
    4. Widget::Widget(QWidget *parent)
    5. : QWidget(parent)
    6. , ui(new Ui::Widget)
    7. {
    8. ui->setupUi(this);
    9. // 单选按钮,默认选中男
    10. ui->rBtn_man->setChecked(true);
    11. this->gender = true;
    12. // 监听用户选择女
    13. connect(ui->rBtn_woman, &QRadioButton::clicked, this, [=]() {
    14. this->gender = false;
    15. });
    16. connect(ui->rBtn_man, &QRadioButton::clicked, this, [=]() {
    17. this->gender = true;
    18. });
    19. connect(ui->commit, &QRadioButton::clicked, this, [=]() {
    20. if (gender == true) {
    21. qDebug() << "选择的是男性";
    22. } else {
    23. qDebug() << "选择的是女性";
    24. }
    25. });
    26. connect(ui->checkBox_2, &QRadioButton::clicked, this, [=]() {
    27. str = "价格实惠";
    28. });
    29. connect(ui->commit, &QRadioButton::clicked, this, [=]() {
    30. if (str == "价格实惠") {
    31. qDebug() << "选择的是价格实惠";
    32. }
    33. });
    34. }
    35. Widget::~Widget()
    36. {
    37. delete ui;
    38. }

    结果

    法二:

    使用checkbox特有的信号

    选中是2,取消是0

    代码

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. #include
    4. #include
    5. Widget::Widget(QWidget *parent)
    6. : QWidget(parent)
    7. , ui(new Ui::Widget)
    8. {
    9. ui->setupUi(this);
    10. // 单选按钮,默认选中男
    11. ui->rBtn_man->setChecked(true);
    12. this->gender = true;
    13. // 监听用户选择女
    14. connect(ui->rBtn_woman, &QRadioButton::clicked, this, [=]() {
    15. this->gender = false;
    16. });
    17. connect(ui->rBtn_man, &QRadioButton::clicked, this, [=]() {
    18. this->gender = true;
    19. });
    20. connect(ui->commit, &QRadioButton::clicked, this, [=]() {
    21. if (gender == true) {
    22. qDebug() << "选择的是男性";
    23. } else {
    24. qDebug() << "选择的是女性";
    25. }
    26. });
    27. connect(ui->checkBox_2, &QCheckBox::stateChanged, this, [=](int state) {
    28. qDebug() << state;
    29. });
    30. }
    31. Widget::~Widget()
    32. {
    33. delete ui;
    34. }

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

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

    法二:√

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

  • 相关阅读:
    java---约数个数(每日一道算法2022.9.10)
    Java OutputStream.write()的功能简介说明
    [附源码]Python计算机毕业设计Django绿色生鲜
    lxml模块(数据提取)
    aspnetcore6.0源代码编译调试
    JavaScript大作业:基于HTML实现紫色化妆品包装设计公司企业网站
    HTML5新特性 day_03(8.9)Canvas的路径、动画,Three.js和地理位置
    Redis-事务/持久化
    期权策略篇: 实现买方狂欢,让卖方稳赚不赔的策略
    多项式全家桶
  • 原文地址:https://blog.csdn.net/Zhouzi_heng/article/details/133913648