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


相关推荐

  • linux常用命令make_linux建立makefile

    linux常用命令make_linux建立makefile概述博客内容包含linux下make命令的使用与makefile的书写规则等,希望通过本文档使读者对make命令makefile文件有进一步了解,由于鄙人经验学识有限文档中会有描述不准确以及理解偏差,欢迎读者指正。fythons@sina.com从一只猫说起hellokitty linux系统中的make命令与makefile文件make与makefile 在linux系统…

    2022年4月19日
    69
  • vue的双向绑定原理及实现_vue的数据绑定怎么实现

    vue的双向绑定原理及实现_vue的数据绑定怎么实现vue双向绑定原理浅析1、什么是双向绑定?​ 所谓双向绑定,指的是vue实例中的data与其渲染的DOM元素的内容保持一致,无论谁被改变,另一方会相应的更新为相同的数据。(数据变化更新视图,视图变化更新数据)2、如何实现双向绑定?在vue中可以通过v-model实现双向绑定<template><divid=”app”>{{username}}<br/><inputtype=”text”v-model=”username”&

    2022年10月18日
    2
  • 树莓派4B安装64位系统 以及基础配置

    树莓派4B安装64位系统 以及基础配置最近在使用一个SDK时发现只提供了linux64版本的,而我用的树莓派系统是32位的。查了一下发现官方有提供64位版本的,开始了重装系统,总结了一下基础配置包括换源,远程连接,中文输入法,摄像头等配置。大纲准备工具*1.SD卡格式化*2.烧制工具*3.系统镜像烧制镜像*1.格式化sd卡*2.打开RaspberryPiImager进行烧制*3.chooseSD选择需要烧制到的SD卡启动前的配置*1.配置WiFi*2.打开ssh*3..

    2022年5月20日
    41
  • go get 使用代理

    go get 使用代理众所周知的原因,goget命令在提取一些工程或依赖时(如golang.org域名)被墙掉。通过使用vpn或代理的方法可以解决。买VPN这个就不多说了,买vpn,相当于直接连接。使用代理通过shell环境变量exporthttp_proxy=http://ip:portgogetgolang.org/xxx通过设置git代理这也是go官方指导。gitconfig–globalhttp.

    2022年7月25日
    30
  • git 提交代码常用命令

    git 提交代码常用命令 一、master分支代码提交过程 gitlog 查看git合入的记录    gitpull从服务器重新拉代码,将本地代码更新为服务器上的最新代码 gitstatus查看本地代码状态,是否有待提交的代码  git add.  将本地代码全部提交  gitcommit-m"合入新的PUCCH和小区功率代码"   为本次提交添加注释 …

    2022年6月26日
    43
  • UML图画法_画用例图的步骤

    UML图画法_画用例图的步骤一.用例图的作用用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。二.用例图包含的元素 1.参与者(Actor)  表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小…

    2025年9月30日
    2

发表回复

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

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