Qt常用控件之数字显示控件QLCDNumber

数字显示控件QLCDNumber

QLCDNumber 是一个专门用来显示数字的控件。

1. QLCDNumber属性

属性 说明
intValue QLCDNumber 的值(int)。
value QLCDNumber 的值(double)。
digiCount 显示几位数字。
mode 数字显示形式。QLCDNumber::Dec 为十进制; QLCDNumber::Hex 为十六进制;QLCDNumber::Bin 为二进制; QLCDNumber::Oct 为八进制。(注意,只有十进制能显示小数点)。
segmentStyle 设置显示风格。 QLCDNumber::Flat 平面风格;QLCDNumber::Outline 轮廓风格;QLCDNumber::Filled 填充风格。
smallDecimalPoint 设置更小的小数点显示。

注意设置 intValuevalue 的接口是 display() ,不是 setIntValue()setValue()

intValuevalue 的值是联动的,将 value 设置为 1.5intValue 就会变成 2

2. 使用QLCDNumber制作定时器

Qt 中有一个 QTimer 类型的变量,QTimer 中有一个 start(n) 接口,会在每n 毫秒后触发一次 timeout 信号 。使用 QLCDNumber 读取这个信号后 --1 ,就可以完成一个定时器:

注意,这里不宜使用多线程自定义一个 timer,Qt 禁止除主线程以外的线程对控件进行修改。

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"
#include <QTimer>

QTimer* timer;//因为timer要在槽函数中使用,需要定义为全局变量

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

     timer=new QTimer(this);
     ui->lcdNumber->display(10);

    connect(timer,&QTimer::timeout,this,&Widget::updateTime);//注意要在start()之前绑定槽函数
    timer->start(1000);

}

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

void Widget::updateTime()
{
    int value=ui->lcdNumber->intValue();
    if(value<=0)
    {
        timer->stop();
        return;
    }
    ui->lcdNumber->display(value-1);
}

QLCDNumber 会在十秒从 10 倒计时到 0 。

相关推荐
6Hzlia23 分钟前
【Hot 100 刷题计划】 LeetCode 287. 寻找重复数 | C++ 数组判环 (快慢指针终极解法)
c++·算法·leetcode
qq_120840937137 分钟前
Three.js 工程向:GLTFLoader 管线、Draco/KTX2 与资源管理
开发语言·javascript·ecmascript
下地种菜小叶1 小时前
定时任务系统怎么设计?一次讲清任务注册、分布式调度、幂等执行与失败补偿
java·开发语言·数据库·oracle·rabbitmq
csbysj20201 小时前
业务代表模式
开发语言
sghuter1 小时前
AI重塑工程师:未来核心能力全景图
开发语言·perl·composer·symfony
浪客川1 小时前
【百例RUST - 013】泛型
开发语言·后端·rust
Robot_Nav2 小时前
DPMPC-Planner:复杂静态环境与动态障碍物下的无人机实时轨迹规划框架
c++·无人机·mpc
iiiiyu2 小时前
常用API(SimpleDateFormat类 & Calendar类 & JDK8日期 时间 日期时间 & JDK8日期(时区) )
java·大数据·开发语言·数据结构·编程语言
故事和你912 小时前
洛谷-数据结构1-4-图的基本应用2
开发语言·数据结构·算法·深度优先·动态规划·图论
qq_12084093712 小时前
Three.js 工程向:Clock、deltaTime 与固定步长主循环
开发语言·javascript·ecmascript