Qt之QLCDNumber
简述
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"));
}
Qt之QLCDNumber的更多相关文章
- 《Qt 实战一二三》
简介 "我们来自Qt分享&&交流,我们来自Qt Quick分享&&交流",不管你是笑了,还是笑了,反正我们是认真的.我们就是要找寻一种Hold不住的 ...
- Qt 之 数字钟
本例用来展示 QTimer 的使用,如何定时的更新一个窗口部件. 1 QLCDNumber 类 QLCDNumber 是一种可将数字显示为类似 LCD 形式的窗口部件,它同 QLabel 一样,都继 ...
- QT入门
QT += core gui widgets //引入需要用到的库 qDebug()<<"t="<<t<<QTime::currentTime( ...
- 《Linux与Qt程序设计》知识框架
本文主要是通过一本书来大致了解Qt开发的框架,不对具体内容做详细分析. 1.首先弄清楚概念:定义->以自己的话理解是什么-> 实现的是什么功能->用在哪些地方 2.前面认识到的知识点 ...
- Qt的Qss样式
http://www.cnblogs.com/coffeegg/archive/2011/11/15/2249452.html(转) http://blog.csdn.net/cgzhello1/ar ...
- 【QT】计时器制作
应小伙伴的要求,做一个小计时器.功能是点击开始就从00:00:00开始计时,点击暂停就暂停计时,点击停止就停止计时. 界面如上图,使用ui设计师直接拖的.按钮和图标的图片都是网上下载的.用美图秀秀抠成 ...
- qt 5 基础知识 2(控件篇)
QVBoxLayout *lay = new QVBoxLayout(this); // 创建一个竖直的盒子 lebel 篇 lay->addWidget(label = new QLabel( ...
- Qt入门(19)——自定义窗口部件
我们介绍可以画自己的第一个自定义窗口部件.我们也加入了一个有用的键盘接口.我们添加了一个槽:setRange(). void setRange( int minVal, int maxV ...
- Qt入门(16)——组装窗口部件
这个例子显示了创建几个窗口部件并用信号和槽把它们连接起来,和如何处理重新定义大小事件. #include <qapplication.h> #include <qpushbutton ...
随机推荐
- C# 中的 == 和 equals()有什么区别?
如以下代码: 1 2 3 4 5 6 7 8 9 int age = 25; short newAge = 25; Console.WriteLine(age == newAge); //t ...
- Ext Js学习之IIS理解
站点分为静态网站和动态网站,纯粹利用html编写的网站属于静态网站,不宜维护和更新而利用C#+extjs等前台+后台技术编写的网站就属于动态站点,有更多的交互,易维护和更新,比如降价的页面,利用htm ...
- MariaDB Galera Cluster集群
一.MariaDB Galera Cluster概要: 1.简述: MariaDB Galera Cluster 是一套在mysql innodb存储引擎上面实现multi-master及数据实时同步 ...
- HDU4784 Dinner Coming Soon(dp)
当时区域赛的一道题.题意大概是这样的,有一个1~N的图,然后你要从1->N,其中每经过一条边需要消耗你的时间和金钱,每到一个地方可以选择什么都不做,或者买一包盐,卖一包盐,身上不能同时有超过B包 ...
- UVA 624 CD(01背包+输出方案)
01背包,由于要输出方案,所以还要在dp的同时,保存一下路径. #include <iostream> #include <stdio.h> #include <stri ...
- H5+ and mui学习记录
基础 1.H5+ 定义实现了一些调用原生方法的对象 2.其他的原生方法可以通过Native.js调用 webview 3.webview是调用原生界面的H5+对象 4.单个webview只承载单个页面 ...
- VMware 进入bios
在虚拟机创建目录中找到.vmx结尾的文件. 添加bios.forceSetupOnce = "TRUE". 打开虚拟机,他会自动进入bios,随后他会把bios.forceSetu ...
- ExtJs之Ext.core.DomHelper.append
<!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...
- python unittest基本介绍
python内部自带了一个单元测试的模块,pyUnit也就是我们说的:unittest 1.介绍下unittest的基本使用方法: 1)import unittest 2)定义一个继承自unittes ...
- 数据库操作(ADO)
QTP工具本身自带有数据查询和验证功能,但是使用的人会感觉这个功能使用起来比较麻烦,灵活性和复用性较低,于是我们选择了用脚本调用ADO组件实现数据库的操作,现总结下工作中用到的数据库操作,代码如下: ...