Qt之QLCDNumber

简介: 简述QLCDNumber控件用于显示一个LCD数字。它可以显示几乎任意大小的数字。可以显示十进制、十六进制、八进制或二进制数。很容易使用display()槽连接到数据源,这个槽可以被任何五个参数类型的数据源重载。当显示范围以外的数据时,就会发射overflow()信号。返回可以通过setDigitCount()来设置,但是setSmallDecimalPoint(

简述

QLCDNumber控件用于显示一个LCD数字。

它可以显示几乎任意大小的数字。可以显示十进制、十六进制、八进制或二进制数。很容易使用display()槽连接到数据源,这个槽可以被任何五个参数类型的数据源重载。

当显示范围以外的数据时,就会发射overflow()信号。返回可以通过setDigitCount()来设置,但是setSmallDecimalPoint() 也会影响它。如果显示设置为十六进制、八进制或二进制,就会显示整数等效值。

这些数字和其它符号可以显示:0/O、1、 2、 3、 4、5/S、 6、7、 8、9/g、负号、小数点、A、 B、 C、D、E、F、h、H、L、o、P、r、u、U、Y、冒号、度数符号(字符串中被指定为单引号)和空格。 QLCDNumber会将非法字符替代为空格。

获取QLCDNumber的内容是不可能的,虽然可以通过value()来获取(返回的double类型,如果显示其他格式怎么办)。所以如果真的需要文本,建议自己存储数据。

接口说明

接口 描述
setDigitCount(int numDigits) 设置所显示的位数
setBinMode() 以二进制形式显示
setOctMode() 以八进制形式显示
setHexMode() 以十六进制形式显示
setDecMode() 以十进制形式显示(默认)
setSmallDecimalPoint(bool) 其参数设置为true或者false,决定了小数点单独站一位空间还是在两个位之间。换句话说,如果参数为true,小数点将占用比平常更少的空间
setSegmentStyle(SegmentStyle) 改变现实数字的外观,包括:Outline、Filled、Flat
checkOverflow(double num) 检查给定值是否可以在区域内显示(也会发射overflow()信号,可以将其连接到槽中处理)

下面我们来实现一个更新时钟的效果。

效果

这里写图片描述

QLCDNumber

首先我们构建一个QLCDNumber对象,并设置显示位数、外观、样式等效果。

m_pLCD = new QLCDNumber(this);
// 设置能显示的位数
m_pLCD->setDigitCount(25);
// 设置显示的模式为十进制
m_pLCD->setMode(QLCDNumber::Dec);
// 设置显示外观
m_pLCD->setSegmentStyle(QLCDNumber::Flat);
// 设置样式
m_pLCD->setStyleSheet("border: 1px solid green; color: green; background: silver;");

定时器

然后,构建一个定时器,每隔一秒来定时刷新QLCDNumber中的内容。

QTimer *pTimer = new QTimer(this);
// 设置定时间隔
pTimer->setInterval(1000);
connect(pTimer, SIGNAL(timeout()), this, SLOT(onTimeOut()));

// 启动定时器
pTimer->start();

槽函数

获取当前日期时间,显示格式为:年-月-日 时:分:秒.毫秒。

void onTimeOut()
{
    // 获取系统当前时间
    QDateTime dateTime = QDateTime::currentDateTime();
    // 显示的内容
    m_pLCD->display(dateTime.toString("yyyy-MM-dd HH:mm:ss.zzz"));
}
目录
相关文章
|
12月前
|
Dart
Flutter|常用数据通信组件
在做需求时经常会遇到组件间通信,本篇汇总了几种常用的通信方式
223 57
|
存储
Qt使用 QSetting 对 ini 配置文件进行操作
Qt使用 QSetting 对 ini 配置文件进行操作
1030 0
|
12月前
|
机器学习/深度学习 算法 自动驾驶
深度学习之分布式智能体学习
基于深度学习的分布式智能体学习是一种针对多智能体系统的机器学习方法,旨在通过多个智能体协作、分布式决策和学习来解决复杂任务。这种方法特别适用于具有大规模数据、分散计算资源、或需要智能体彼此交互的应用场景。
665 4
|
网络协议 算法 网络架构
PPP协议
PPP协议
830 1
PPP协议
|
11月前
|
前端开发 JavaScript API
2024年前端框架的演进与创新
【10月更文挑战第2天】在快速发展的Web开发领域,前端框架是构建交互式界面的基石。从jQuery到React、Vue和Angular,每个框架都有独特优势。2024年,Vue 3持续发展,引入Vapor模式提升性能;React生态系统不断扩展,成为热门选择;SolidJS崛起,提供细粒度响应性;低代码/无代码平台推动开发民主化;跨平台开发如React Native和Flutter进步显著;渐进式Web应用(PWA)使用增加,提升用户体验。这些趋势正塑造前端开发的未来,助力开发者在竞争中保持领先。
|
弹性计算 固态存储 JavaScript
4核8G云服务器支持多少人?4C8G多少钱一年?
阿里云4核8G ECS u1实例,支持约30个并发用户,日均1万IP访问。目前优惠价700元/年。配置包括Intel Xeon CPU,4核8GB内存,1-3M带宽,20-40GB ESSD Entry系统盘。网络收发包可达50万PPS,最高25万连接数。适合低至中等流量网站。
662 2
|
存储 网络协议 架构师
架构师之路 - 存储架构
架构师之路 - 存储架构
1363 1
|
XML Java 数据格式
SpringBoot中配置freemarker自动配置忽略设置
o.s.b.a.freemarker.FreeMarkerAutoConfiguration:65 - Cannot find template location(s): [classpath:/templates] (please add some templates, check your FreeMarker configuration, or set spring.freemarker.checkTemplateLocation=false)
SpringBoot中配置freemarker自动配置忽略设置
|
数据可视化 uml
Markdown语法-从基础到进阶
Markdown语法-从基础到进阶
548 0
|
人工智能 JavaScript 编译器
2023年伊凡最新整理简单方法之为hbuilderx配置node环境实现可npm install
本文优雅草伊凡投稿一颗优雅草科技,欢迎其他朋友们来投稿(一定会详细署名),好直接开始,由于伊凡的电脑实在太卡了因此重装了一下系统所有环境全没了可能要一步步做环境了,后续可能会发关于flutter,鸿蒙开发的环境,不过说实话win10系统老是更新越更新就越卡建议所有同学们至少2年内一次重装,伊凡这台电脑主机接近8000多(21年迈的)看了下记录上一次重装是2021年怪不得打个英雄联盟都能偶尔卡顿简直就是不可思议。检查下是否安装成功,显示版本号即为成功。安装完了,运行-cmd 输入。官网去下载编译器解压。
473 0
2023年伊凡最新整理简单方法之为hbuilderx配置node环境实现可npm install

热门文章

最新文章