写点什么

Qt 示例 | 数字时钟 Digital Clock Example

作者:YOLO.
  • 2022-10-17
    河北
  • 本文字数:699 字

    阅读完需:约 1 分钟

Qt示例 | 数字时钟 Digital Clock Example

示例运行效果:


这个示例实现了使用 QTimer 定期更新小部件的一个数字时钟。

文件目录:


主要包含一个 main.cpp 和一个数字时钟窗口类。

具体实现:

main 函数:


将数字时钟窗口显示出来。

DigitalClock 类:


只有一个构造函数和一个 showTime()函数。DigitalClock 类提供了一个时钟小部件,显示时间,用一个闪烁的冒号分隔小时和分钟。通过子类化 QLCDNumber 并实现 showTime()的私有槽函数来更新时钟的显示。


构造函数:



  • 在构造函数中,首先设置 LCD 数字的外观。

  • 还设置了一个一秒钟间隔的计时器来跟踪当前时间,并将其 timeout()信号连接到私有的 showTime()槽函数,以便显示每秒钟更新一次。

  • 然后,调用 showTime()槽函数;如果没有这个调用,在显示时间之前,启动时会有一秒钟的延迟。

  • 还设置了窗口的标题和大小。


QLCDNumber::Filled 样式产生用前景色(通常是黑色)填充的凸起部分。


showTime 函数:



只要时钟显示需要更新,就会调用 showTime()槽函数。


槽函数中将当前时间转换为格式为“hh:mm”的字符串。当 QTime::second()为偶数时,字符串中的冒号将被替换为空格。这使得冒号每隔一秒出现和消失一次。


最后,调用 QLCDNumber::display()来更新小部件。


display: 此属性保存显示的值。此属性对应于 LCDNumber 显示的当前值。如果显示的值不是数字,则该属性的值为 0。默认情况下,此属性包含值 0。


currentTime: 返回系统时钟所报告的当前时间。注意,准确性取决于底层操作系统的准确性;并非所有系统都能提供 1 毫秒的精度。


toString: 以字符串形式返回时间。format 参数决定结果字符串的格式。

一点感想:

  • 充分利用 Qt 提供的控件以及控件提供的函数。

  • 可以对一些计算技巧进行总结和整理,比如这里的模二运算。还有类似于四舍五入运算等简易写法。

发布于: 刚刚阅读数: 4
用户头像

YOLO.

关注

还未添加个人签名 2022-05-06 加入

还未添加个人简介

评论

发布
暂无评论
Qt示例 | 数字时钟 Digital Clock Example_qt_YOLO._InfoQ写作社区