【Qt教程】2.3 - Qt5 控件 - 按钮组(QPushButton、QToolButton、QRadioButton、QCheckBox)资源编辑器导入资源

这篇博客详细介绍了Qt界面设计中按键组(QPushButton、QToolButton)、单选钮(QRadioButton)和多选钮(QCheckBox)的使用。内容包括了不同按键的样式配置、资源管理器添加图片资源、单选钮的默认选中设置以及多选钮状态监听。此外,还展示了实际操作中遇到的样式问题及其可能原因。
摘要由CSDN通过智能技术生成

上一讲介绍UI设计器的使用,下面来详细介绍下其他控件 - 按键组。

 

图标下载网站:easyicon、Iconfont。

GitHub示例工程代码仓库:Qt例程

 

1. 普通按键(QPushButton、QToolButton)

普通按钮主要有两种:QPushButton、QToolButton

其中 QPushButton的显示效果一般,大多数情况只用来做最普通的按键。

QToolButton的可配置项比较多,一般用于做图形化的功能按键。

 

 

ToolButton 默认只显示图标,可以通过修改 toolButtonStule 属性来只显示文字,或者文字图标同时显示。

atuoRaise,勾上后按钮背景透明,凸起风格。

 

给 Tool Button添加图片有两种方法:

  • icon 从资源管理器添加。相当于将图片等资源一起编译进应用中,不存在寻址寻不到的问题。但由于是编译进应用,会使应用本身占用磁盘空间体积变大。
  • icon 从指定文件路径添加。用这种方式,需要在软件中指定资源路径,并且从路径中寻址。如路径改变或者不存在资源,会有错误。

我们在不考虑软件升级,且应用体积比较小的情况下,一般使用从资源管理器添加。

 

2. 资源编辑器 添加资源

添加资源:工程 - 右键 - Add New... - Qt - Qt Resource File

 

点击 Add Prefix,修改前缀为/,将图片等文件放入同一个文件夹放入工程目录下,点击 Add Files,将图片全部选中,即可看到图片等资源全部存在于资源编辑器中。

 

如不小心将资源编辑器关闭,选中资源文件,右键,Open With,资源编辑器。

 

???

 

为啥人家视频中的按键是这样的

而我的却是这种灰蒙蒙的??看起来low不少,系统主题风格不一样???

 

3. 单选钮(QRadioButton)

单选钮就是仅能有一个选中的按钮。如果想实现分组,需要使用Group Box将同一组别的框在一起。为了美观,框在一起后再进行次布局。

 

设置单选钮默认选中的方法:

用代码设置:

widget.c:

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>

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

    // 设置单选钮,默认选中男
    ui->rBtnMan->setChecked(true);
    // 选中女后,调试打印消息
    connect(ui->rBtnWoman, &QRadioButton::clicked, [=](){
        qDebug() << "单选钮选中女";
    });
}

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

运行结果:

 

4. 多选钮(QCheckBox)

多选钮与单选钮一样,如果需要分组,可以要用Group Box将同一组别的框在一起。

监听多选钮状态,用代码设置:

widget.c:

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>

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

    // 设置单选钮,默认选中男
    ui->rBtnMan->setChecked(true);
    // 选中女后,调试打印消息
    connect(ui->rBtnWoman, &QRadioButton::clicked, [=](){
        qDebug() << "单选钮选中女";
    });

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

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

运行结果:2选中 1半选 0未选

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值