本例展示了 QTimer 的使用,如何定时更新一个窗口部件 DigitalClock

1  QLCDNumber 类

QLCDNumber 是一种可将数字显示为类似 LCD 形式的窗口部件,它同 QLabel 一样,都继承自 QFrame,而 QFrame 继承自 QWidget

头文件 digitalclock.h

 #include <QLCDNumber>

 class DigitalClock : public QLCDNumber
{
Q_OBJECT public:
DigitalClock(QWidget *parent = );
private slots:
void showTime();
};

DigitalClock 继承自 QLCDNumber 类,对于需要信号和槽的类,#5 处的 Q_OBJECT 宏是必需的,#8 声明构造函数,#10~11 声明槽函数 showTime()

1.1  构造函数

 DigitalClock::DigitalClock(QWidget *parent)
: QLCDNumber(parent)
{
setSegmentStyle(QLCDNumber::Filled); showTime(); setWindowTitle("Digital Clock");
resize(, );
}

1.2  槽函数

#3 获取到当前时间后,#4 将其转换为 “hh:mm” 格式,#5 显示出时间。

 void DigitalClock::showTime()
{
QTime time = QTime::currentTime();
QString text = time.toString("hh:mm");
display(text);
}

  此时,程序可以显示数字时钟,但不是实时,只在第一次运行时获取当前的时间并显示出来。为了实时显示,则需要下面的 QTimer 类。

2  QTimer 类

QTimer 类继承自 QObject,可用来实时的更新时间。构造函数如下:#6 新建一个定时器,#7 利用 connect() 函数,连接信号 timeout() 和 槽函数 showTime(),#8 开启定时器,并设置时间间隔为 1000 ms

 DigitalClock::DigitalClock(QWidget *parent)
: QLCDNumber(parent)
{
setSegmentStyle(QLCDNumber::Filled); QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(showTime()));
timer->start(); showTime(); setWindowTitle("Digital Clock");
resize(, );
}

最终的 showTime() 如下: #5 和 #6 通过取余运算,使得时钟和分钟之间的分号,每隔一秒就消失,从而实现闪烁功能

 void DigitalClock::showTime()
{
QTime time = QTime::currentTime();
QString text = time.toString("hh:mm");
if((time.second() % ) == )
text[] = ' ';
display(text);
}

界面如下:

  aaarticlea/png;base64,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" alt="" width="323" height="148" />

参考资料

Qt 助手,Qt 5.8 | Qt Widgets | Digital Clock Example

Qt 之 数字钟的更多相关文章

  1. 基于basys2用verilog设计多功能数字钟(重写)

    话不多说先上图         前言 自从学习FPGA以来,唯一做过的完整系统就是基于basys2得多功能数字表.记得当时做的时候也没少头疼,最后用时间磨出来了一个不是很完整的小系统,当时还是产生了满 ...

  2. 基于BASYS2的VHDL程序——数字钟

    在编电子表时发现FPGA求余,取模只能针对2的次方.毕竟是数字的嘛! 时钟用到了动态刷新数码管.以一个大于50Hz的速度刷新每一个数码管. 因为数码管只有四个,只写了分针和秒针. 代码如下: libr ...

  3. Qt项目——数字内容管理系统的参考资料和细节

    打开文件路径,若带空格,要用引号括起路径 LPCWSTR与QString的转换:LPCWSTR strL = strQ.toStdWString().c_str(); 用指定程序打开文件(选择文件的打 ...

  4. FPGA 物理时序不合理的体现(体现方式:数字钟的行扫描和列扫描)

    本人在这只讨论建模好的模块来比较解释现象,如有不周到请大家指正. 软件功能仿真和在硬件上的区别:可以从这个数码管的行扫描和列扫描实例来体会一下,物理时序的影响和改进方法. 数码管的行扫描.列扫描要求同 ...

  5. VHDL硬件描述语言实现数字钟

    --VHDL上机的一个作业,程序太长实验报告册上写不下了.于是就在博客上留一份吧.LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOG ...

  6. 基于BASYS2的VHDL程序——数字钟(最终版)

    转载请注明原地址:http://www.cnblogs.com/connorzx/p/3674178.html 调时电路正常工作.一切正常.发现做FPGA还是得从数电的思路思考,设置一个预置使能端,预 ...

  7. 基于BASYS2的VHDL程序——数字钟(改进版)

    扩展到时分秒.加了入调时电路,但不知道为什么有两个按键不好使.而且不知道以何种方式假如按键消抖电路,因为加入后会多个时钟控制一个信号,物理不可实现.调试电路待解决.还有,四个数目管中间的那两个圆点怎么 ...

  8. 基于串口校时的数字钟设计(verilog实现)

    任务: 电路图设计: 设计: 模块1:1.先设计一个计数时钟,为了仿真方便,这里把1000ns当作1s. 创建一个计数器second_lim,当计数到1000/20时清零,即1s. 秒显示器secon ...

  9. Qt学习之秒表的实现(StopWatch) (转)

    秒表对于我来说并不陌生,在之前自己学习单片机时,实现过秒表和数字钟:基本思路:开启单片机带的定时器,并设置它没10ms溢出一次,分别用三个变量hour,minute,secong记录秒表的时分秒,然后 ...

随机推荐

  1. ASP.NET中使用UpdatePanel实现局部异步刷新方法和攻略(转)

    asp.net UpdatePanel实现异步局部刷新 如有雷同,不胜荣欣,若转载,请注明 鉴于最近项目需要,研究了一下UpdatePanel控件的使用方法,现总结如下,可能有很多地方不足,还望大家斧 ...

  2. sql union和union all的用法及效率

    UNION指令的目的是将两个SQL语句的结果合并起来.从这个角度来看, 我们会产生这样的感觉,UNION跟JOIN似乎有些许类似,因为这两个指令都可以由多个表格中撷取资料. UNION的一个限制是两个 ...

  3. HTC辟谣: HTC Vive2不会在CES 2017上公布

    HTC官方:第二代Vive不会在CES 2017上发布.曾有消息称HTC Vive的下一代--Vive 2将在CES 2017上展出能成为首个4K头显以及无线头显.但日前HTC官方给于否认,此消息不实 ...

  4. android事件处理之基于监听

    Android提供了了两种事件处理方式:基于回调和基于监听. 基于监听: 监听涉及事件源,事件,事件监听器.用注册监听器的方法将某个监听器注册到事件源上,就可以对发生在事件源上的时间进行监听. 最简单 ...

  5. 深入理解JavaScript运行机制

    深入理解JavaScript运行机制 前言 本文是写作在给团队新人培训之际,所以其实本文的受众是对JavaScript的运行机制不了解或了解起来有困难的小伙伴.也就是说,其实真正的原理和本文阐述的并不 ...

  6. T-SQL Recipes之Index Defragmentation

    The Problem 索引一直是优化查询性能的不二法门.其中一个最直接的问题便是当审查一个低性能查询语句时,检查索引是否在正确的地方或者加索引没有.运行一个batchjob查看索引碎片,必要时采取步 ...

  7. Android中ListView的几种常见的优化方法

    Android中的ListView应该算是布局中几种最常用的组件之一了,使用也十分方便,下面将介绍ListView几种比较常见的优化方法: 首先我们给出一个没有任何优化的Listview的Adapte ...

  8. MSSQL数据库表加锁

    所指定的表级锁定提示有如下几种: 1. HOLDLOCK: 在该表上保持共享锁,直到整个事务结束,而不是在语句执行完立即释放所添加的锁. 2. NOLOCK:不添加共享锁和排它锁,当这个选项生效后,可 ...

  9. python setup.py 管理

    发布项目遇到了坑……特此记录. How to write setup.py: https://docs.python.org/2/distutils/setupscript.html Setup.py ...

  10. C++ 编写DLL文件给易语言调用

    摸索了两天了,终于解决了所有问题,在此跟大家分享. 需要三个文件,dll_demo.h.dll_demo.cpp.dll_dome.def 直接上代码: 头文件如下: #ifndef _DLL_DEM ...