介绍Qt的三种定时器QObject内置定时器,QBasicTimer,QTimer。

QObject内部定时器

使用startTimer开启定时器,使用killTimer(int id)接口来关闭指定的定时器。
启动定时器后会在对应间隔时间触发timerEvent事件。 示例

class Object : public QObject {Q_OBJECT
public:Object(){startTimer(1000);}protected:void timerEvent(QTimerEvent *event) { }
};

QBasicTimer

QBasicTimer类为对象提供定时器事件。
QBasicTimer特点快速轻量级低级类。对于需要降低使用多个定时器开销的应用程序,QBasicTimer可能是一个不错的选择。如果是一般使用情况建议使用更高级别的QTimer类而不是此类。
使用start接口来设置定时时间与定时事件的接收对象。 示例

class Object : public QObject {Q_OBJECT
public:Object() { }protected:void timerEvent(QTimerEvent *event) { }
}Object object;
QBasicTimer basicTimer;
basicTimer.start(500, &object);

QTimer

QTimer类提供重复单次定时器。
QTimer类为定时器提供高级编程接口。创建一个QTimer实例,将其timeout()信号连接到对应的槽中,然后调用start()开启定时器,每隔一段时间会发出timeout()信号。 示例

class Object : public QObject {Q_OBJECT
public:Object(){connect(&m_timer, SIGNAL(timeout()), this, SLOT(onTimeout()));m_timer.start(1000);}private slots:void onTimeout() { }private:QTimer m_timer;
};

定时器小知识

  • 需要不同时间精度的定时器,可以指定定时器的TimerType类型。

特别地Qt::VeryCoarseTimer非常粗略的意思是精度为±500ms。例如,10500ms的间隔将四舍五入为11000ms,而10400ms会置为10000ms。

  • 上述定时器例子都为循环触发,需要停止定时器请使用stopkillTimer,而想使用单次定时器最好使用QTimer::singleShot接口。
  • 使用QObject::timerEvent捕获定时器事件,如果存在多个定时器源,可以使用timerId来判断确定那个定时器事件。
  • 如果系统忙或无法提供请求的准确性,所有定时器类型都有可能会比预期的时间晚超时。在这种晚超时的情况下,虽然是多个超时已经过期,但是只发出一次超时事件。
  • QTimer的remainingTime接口可以获得距离触发定时器事件的剩余时间
  • 使用QObject的startTimer需要注意的是每调用一次会新增一个定时器并返回一个定时器ID。
id1 = startTimer(1000); // 开启一个1秒定时器,返回其定时器ID
id2 = startTimer(2000); // 开启一个2秒定时器,返回其定时器ID
id3 = startTimer(3000); // 开启一个3秒定时器,返回其定时器ID

  • Qt官方使用定时器的例子可以参考Analog Clock Example

  • 本文首发于公众号:Qt君

python 关闭 定时开启_Qt多种定时器相关推荐

  1. python 关闭 定时开启_Python爬虫邮箱定时自动发送

    背景介绍 小说网站-笔趣看:      URL:http://www.biqukan.com/ 笔趣看是一个盗版小说网站,这里有很多起点中文网的小说,该网站小说的更新速度稍滞后于起点中文网正版小说的更 ...

  2. 关闭 定时开启_【话说定时器系列】之四:STM32定时器更新事件及案例分享

    STM32定时器是 ST MCU 内部最基础且常用的外设,实际应用尤为普遍.去年,电堂推出了<STM32 TIMER基础及常规应用介绍>,为大家梳理了 STM32 TIMER 的庞大内容, ...

  3. python 禁用网卡_C#语言实现定时开启或禁用网卡小程序

    C#语言实现定时开启/禁用网卡 程序运行效果图 程序实现主要代码 源代码工程文件(VS2013工程文件编译通过) 查看网卡名称附图 1.win7旗舰版运行效果图: 2.程序实现主要代码: /// 网卡 ...

  4. python关闭线程daemon_python中threading开启关闭线程操作

    在python中启动和关闭线程: 首先导入threading import threading 然后定义一个方法 def serial_read(): ... ... 然后定义线程,target指向要 ...

  5. 显示器定时开启和关闭小工具

    前几天,按照学院要求,学校几个LED屏幕要连续几天播放指定内容PPT,当时没有用LED自带的管理软件(因为那个软件操作起来太麻烦了),没有设置定时开启关闭显示器按钮.半夜屏幕还是开启的,结果晚上1点多 ...

  6. Windows定时开启或关闭声音音量

    场景 电脑通常不关机,连接了音箱,部分软件会可能有声音,所以睡觉前需关闭系统声音,有时候忘记关声音就比较烦.于是找到了定时开启或关闭Windows音量的解决方法 方法 使用nircmd命令行工具,创建 ...

  7. 华为p20pro关闭HTML查看,华为p20如何调出息屏时钟 每天定时开启灭屏显示功能

    谈论到华为,大家应该都不陌生,有朋友问我的华为p20怎么没有屏幕录制,另外,还有朋友想问华为p20怎么更改默认闹钟铃声,这到底是咋回事?实际上华为p20怎样设置锁屏时间呢,接下来小编为大家分享华为p2 ...

  8. linux防火墙shell脚本,Linux系统目录结构,Shell脚本;关闭和开启防火墙

    Linux系统目录结构 目录 描述 备注 /bin a.存放着最经常使用的命令 b.可执行文件,用户命令 c.构建最小系统所需要的命令 /boot a.内核与启动文件 b.系统启动相关文件 c.启动L ...

  9. Python每天定时发送监控邮件

    不管是在信贷领域还是支付领域,作为一个风控人员,我们都需要对部署的策略模型进行监控,信贷领域可能还需要对客户的逾期表现进行监控.这时,如果我们能用python自动连接数据库,对策略.模型.贷后表现等数 ...

最新文章

  1. 职场老鸟的焦虑与出路
  2. shell中$后加引号有什么用($string和$'string')
  3. visio 导出无边距的pdf 图
  4. oracle inside(4)
  5. 零门槛!ZBLibrary仿微信朋友圈自定义View,就是这么简单!
  6. 《精通Spring4.X企业应用开发实战》读后感第四章(Java反射)
  7. php mysql 编码转换_PHP编码转换函数应用
  8. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨0.41%
  9. [leetcode] Power of Two 判断一个数是否是2的平方
  10. 系统学习NLP(十八)--文本分类概述
  11. java解压zip文件程序_java 解压zip文件
  12. 高斯核原理详解+生成高斯核的Python代码
  13. 贴吧云签到php源码,求助帮忙把PHP的贴吧签到代码转换到云函数下
  14. MISFIT SHINE2评测相比一代的SHINE更加实用:也许是目前最好的智能手环
  15. 电力用高压锅炉管物理性能检验
  16. android 打开摄像头
  17. 立创梁山派GD32F450ZGT6--通过PCA9685控制16路舵机
  18. Bulk-Only传输协议 UFI命令块规范
  19. uni-app去掉页面顶部的导航栏
  20. 滚动屏幕时绚烂css3的动画效果

热门文章

  1. SAP CAM - Cloud Access Manager
  2. Angular module加载的原理研究
  3. 各种Java实现的常用排序算法
  4. How is SAP CDS metadata retrieved from GM6 frontend - text related
  5. 使用代码获得Social Media Channel绑定的service url
  6. 微软的ppt现在可以直接导出成可以播放的mp4了,非常方便
  7. SAP CRM WebClient UI根据扩展字段搜索出结果的实现原理
  8. 使用SAP iRPA创建一个最简单的hello world项目并部署到SAP云平台上
  9. SAP Hybris Commerce启用customer coupon的前提条件
  10. Could not open app - SAP UI5 error message