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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 笛卡尔心形函数表达式_笛卡尔心形曲线[通俗易懂]

    笛卡尔心形函数表达式_笛卡尔心形曲线[通俗易懂]1650年,斯德哥尔摩的街头,52岁的笛卡尔邂逅了18岁的瑞典公主克里斯汀。那时,落魄、一文不名的笛卡尔过着乞讨的生活,全部的财产只有身上穿的破破烂烂的衣服和随身所带的几本数学书籍。生性清高的笛卡尔从来不开口请求路人施舍,他只是默默地低头在纸上写写画画,潜心于他的数学世界。一个宁静的午后,笛卡尔照例坐在街头,沐浴在阳光中研究数学问题。他如此沉溺于数学世界,身边过往的人群,喧闹的车马队伍。都无法对他…

    2022年10月17日
    1
  • Linux(Ubuntu)系统查看显卡型号

    Linux(Ubuntu)系统查看显卡型号给我的Ubuntu安装显卡驱动时,需要查看显卡型号,因为我的是Windows/Ubuntu双系统,一开始想到的是去windows查看,然后下载驱动,安装成功。方法一、lspci|grep-ivga后来想看一下linux怎么查看显卡型号,搜到命令lspci|grep-ivga,但返回的是一个十六进制数字代码,如下图:遂,继续百度,但都只是说了命令,没解释返回结果什么意思。又……

    2022年7月26日
    6
  • mac os+selenium2+chrome驱动+python3

    mac os+selenium2+chrome驱动+python3macos10.11.5+python3安装selenium过程详解(附截图),难点在chrome驱动安装,以及第一个selenium自动化脚本

    2022年6月29日
    30
  • 2015年最新Android基础入门教程目录(完结版)

    2015年最新Android基础入门教程目录(完结版)2015年最新Android基础入门教程目录(完结版)前言:关于《2015年最新Android基础入门教程目录》终于在今天落下了帷幕,全套教程共148节已编写完毕,附上目录,关于教程的由来,笔者的情况和自学心得,资源分享以及一些疑问等可戳:下面是本系列教程的完整目录:

    2022年5月2日
    34
  • 记一次没遇到过的UPX脱壳

    记一次没遇到过的UPX脱壳关于壳的介绍见CTF-WIKI这里就不多赘述了拿到我们的程序,先查看64位upx壳,首先直接upx-d试一下,结果是失败报错提示下图(一开始也有怀疑过是不是版本不兼容的问题,后来尝试高版本还是兼容低版本的)然后想尝试手脱,打开x64dbg,单步下去直接跑飞了,重新载入,想看看f7能否跟进,结果发现第一个指令是一个jmp指令,遂失败搜索这个报错无果,问了师傅,可能是upx非标准格式,找到了一篇文章链接如下:https://www.52pojie.cn/thread-326995-1-1.

    2022年7月19日
    17
  • 网络协议篇之SNMP协议(一)——SNMP报文协议

    网络协议篇之SNMP协议(一)——SNMP报文协议前言:最近工作中遇到大量的网络协议开发,现就其中一些网络协议的基础知识进行整理,文中借鉴了一些大神的整理,后面会贴上链接,如侵删)

    2022年10月17日
    2

发表回复

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

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