Qt学习笔记#4:QTimer和QTime

QTimerClassQTimer是一个计时器类它的使用分三步,创建对象,连接signal和slot函数,start()QTimer*timer=newQTimer(this);connect(timer,SIGNAL(timeout()),this,SLOT(update()));timer->start(1000);其中,SIGNAL(timeou

大家好,又见面了,我是你们的朋友全栈君。

文章目录


QTimer Class

QTimer是一个计时器类
它的使用分三步,创建对象,连接signal和slot函数,start()

	QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(update()));
    timer->start(1000);

其中,SIGNAL(timeout())表示:每当计时结束,计时器归零并重新计时,并发送一个信号激活slot函数。

timer->start(1000);当中的1000,就是1000毫秒的意思,表示每次timeout的时间间隔是1000ms

如果我们想让这个计时器只计时一次,那么必须使用void setSingleShot(bool singleShot)函数。

	QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(update()));
    timer->setsetSingleShot(true)
    timer->start(60000);

这样计时器只会倒计时1分钟,然后结束。

当然我们还可以改变计时周期

void setInterval(int msec)

QTime Class

QTime 提供时间函数给用户使用,它和QTimer的区别就和手表与秒表的区别一样。

QTime主要用于对时间的操作,他提供了大量的函数便于用户对时间进行转换和计算。

类型 名称 说明
QTime() 构造一个时间为0的对象
QTime(int h, int m, int s = 0, int ms = 0) 构造一个具有初始时间的对象
QTime addMSecs(int ms) const 在当前时间基础上增加ms毫秒,ms可为负
QTime addSecs(int s) const 在当前时间基础上增加s秒,s可为负
int hour() const 返回小时数
int minute() const 返回分钟数
int second() const 返回秒
int msec() const 返回毫秒
bool isValid() const 判断当前对象的时间是否有效,毕竟1天不可能有25小时,也不会存在1分61秒
bool isValid(int h, int m, int s, int ms = 0) 判断输入的时间是否有效
int msecsTo(const QTime & t) const 计算距离时间t的毫秒数,如果t早于当前时间,则为负
int secsTo(const QTime & t) const 计算距离时间t的秒数
bool setHMS(int h, int m, int s, int ms = 0) 设置标准HMS时间,如果不符合标准,返回false
下面是最重要的几个
void start() 将当前系统时间记录为当前时间
int restart() 将当前系统时间记录为当前时间,并返回距离上次呼叫start()或者restart()函数间隔的毫秒数
int elapsed() const 计算与最近一次呼叫start()或者restart()函数间隔的毫秒数,相当于计时器
QString toString(const QString & format) const 将时间转化为特定的字符串格式
QString toString(Qt::DateFormat format = Qt::TextDate) const 按照Qt::DateFormat的格式转化
QTime fromString(const QString & string, Qt::DateFormat format = Qt::TextDate) Qt::DateFormat转化为QTime对象
QTime fromString(const QString & string, const QString & format) 特定的字符串格式转化为QTime对象
QTime currentTime() 得到当前的系统时间

此外,const QString & format需要特别说明,表格如下:

Expression Output
h the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)
hh the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)
H the hour without a leading zero (0 to 23, even with AM/PM display)
HH the hour with a leading zero (00 to 23, even with AM/PM display)
m the minute without a leading zero (0 to 59)
mm the minute with a leading zero (00 to 59)
s the second without a leading zero (0 to 59)
ss the second with a leading zero (00 to 59)
z the milliseconds without leading zeroes (0 to 999)
zzz the milliseconds with leading zeroes (000 to 999)
AP interpret as an AM/PM time. AP must be either “AM” or “PM”.
ap Interpret as an AM/PM time. ap must be either “am” or “pm”.
t the timezone (for example “CEST”)

例子:

Format Result
hh:mm:ss.zzz 14:13:09.042
hⓂ️s ap 2:13:9 pm
HⓂ️s a 14:13:9 pm

而Qt::DateFormat又分为很多种,比如Qt::TextDate、Qt::ISODate等,详请见官方说明,这里就不一一指出了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127665.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CBOW全称_skip的形式

    CBOW全称_skip的形式skip-gram结构是利用中间词预测邻近词cbow模型是利用上下文词预测中间词一、CBOW1、CBOW之所以叫连续词袋模型,是因为在每个窗口内它也不考虑词序信息,因为它是直接把上下文的词向量相加了,自然就损失了词序信息。CBOW抛弃了词序信息,指的就是在每个窗口内部上下文直接相加而没有考虑词序。2、CBOW过程简单介绍如下(实际算法会用到哈夫曼编码等降维技巧,这里仅以理解为目的简介基本原理):输入为C个V维的vector。其中C为上下文窗口的大小,V为原始编码空间的规模。例如,

    2025年9月24日
    6
  • 基于单片机的交通信号灯系统设计开题报告_51单片机交通信号灯设计

    基于单片机的交通信号灯系统设计开题报告_51单片机交通信号灯设计十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。设计功能描述:1、采用51单片机作为主控单元;2、采用74HC245芯片驱动数码管;3、采用数码管显示倒计时时间;4、东西和南北方向各有两个数码管,分别显示时间,东西和南北的时间是不一样的,相差黄灯的时间才是正确的;5、可分别设置主干道和支干道通行时间;6、具有紧急模式,特种车辆优先通行或交通事故应急处理。按键说明:K1:黄灯长亮…

    2025年12月1日
    10
  • 百度地图API显示多个标注点带百度样式信息检索窗口的代码

    百度地图API显示多个标注点带百度样式信息检索窗口的代码

    2021年10月10日
    40
  • zendframework报错处理

    zendframework报错处理

    2021年8月21日
    54
  • php 数组根据值找key,从数组查找key对应的值 – key

    php 数组根据值找key,从数组查找key对应的值 – key…L,`nick`varchar(32)DEFAULTNULL,`reg_date`datetimeDEFAULTNULL,PRIMARYKEY(`id`),KEY`IND_NICK`(`nick`),KEY`IND_REGDATE`(`reg_date`))CREATETABLE`users`(`id`int(11)NOTNULL,`nick`varchar(32)D…

    2022年7月23日
    10
  • w ndows7快速关机,windows7怎么快速关机|win7系统实现快速关机的方法

    w ndows7快速关机,windows7怎么快速关机|win7系统实现快速关机的方法windows7系统怎么快速关机?现如今大家追不仅仅追求开机速度,关机速度也是大家所追求的。要不别人都下班了,你的电脑还在等待关闭是不是很不爽呢?windows7怎么快速关机?可以通过设置注册表来实现快速关机。下面小编分享win7系统实现快速关机的方法,有需要的用户可以一起来学习下。具体方法如下:1、点击【开始】-【运行】,输入“regedit”打开注册表编辑器;2、打开注册表编辑器窗口,找到H…

    2025年6月30日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号