文章目录
- 1. 介绍
- 2. 实例 - QLCDNumber倒计时
- 3. 资源文件
1. 介绍
QLCDNumber
是Qt框架中用于显示数字的控件,它模拟了一个液晶数字显示屏。
- 在Designer界面中显示如下:
有以下 常用属性:
属性 | 描述 |
---|---|
intValue | 获取或设置QLCDNumber 显示的整数值。 |
doubleValue | 获取或设置QLCDNumber 显示的浮点数值。 |
mode | 获取或设置QLCDNumber 的显示模式。 |
segmentStyle | 获取或设置QLCDNumber 的段样式。 |
frameShape | 获取或设置QLCDNumber 的框架形状。 |
frameShadow | 获取或设置QLCDNumber 的框架阴影效果。 |
digitCount | 获取或设置QLCDNumber 显示的数字位数。 |
2. 实例 - QLCDNumber倒计时
这里我们 利用QLCDNumber实现倒计时:即 从10开始,每一秒-1,直至为0。实现倒计时的效果:
如何实现每秒 -1 的操作? —— 利用定时器
- 首先在
widget.h
创建一个Qtimer对象以及 处理函数:
public slots:
void startCountdown(); // 开始倒计时
void startTimer(); // 启动计时器
private:
QTimer* timer;
- 随后在
widget.cc
中分别对槽函数进行实现:
void Widget::startTimer()
{
// 启动定时器, 参数为触发timeout的周期(ms)
timer->start(1000);
}
void Widget::startCountdown()
{
// 获取当前 LCDNumber 数值
int value = ui->lcdNumber->intValue();
if (value <= 0){
// 数字减到0, 停止定时器.
timer->stop();
return;
}
ui->lcdNumber->display(value - 1);
}
- 最后在构造函数中进行 初始值的设置 以及 信号槽的连接:
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
// 设置初始值
ui->lcdNumber->display(10);
// 创建 QTimer(计时器)
timer = new QTimer(this);
// 将计时器的timeout信号与槽函数startCountdown连接
connect(timer, &QTimer::timeout, this, &Widget::startCountdown);
// 将点击按钮信号与槽函数startTimer连接
connect(ui->pushButton_start, &QPushButton::clicked, this, &Widget::startTimer);
}
效果演示:
3. 资源文件
上述所涉及的代码等资源文件在👇
QLCDNumber的使用 - 实现倒计时