上一讲介绍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未选