情景

有一种特殊情况,一旦窗口系统事件队列中的所有事件都已经被处理完,一个定时为0的QTimer就会到时间了。这也可以用来当提供迅速的用户界面时来做比较繁重的工作。(优点)

QT app启动后不做任何操作,程序CPU占比已经达到90%以上(缺点),后发现APP不启动的情况下,SDK也占用了接近50%的CPU使用率.

示例如下:

QTimer* pTimer = new QTimer();
connect(pTimer,SIGNAL(timeout()), this, SLOT(OnTimeout));
pTimter->start();

原因

    定时器启动时不设置间隔时间,执行定时任务会耗费大量的CPU使用率,设置时间间隔后,cpu使用率在1%左右,此处定时器使用需格外注意

    一些操作系统限制可能用到的定时器的数量,Qt会尽力在限制范围内工作。

补充

void setInterval(int msec) 设置定时器时间间隔

不设置的话默认为0,时间间隔为0的定时器将在窗口系统的事件队列中的所有事件处理完毕后立即超时

bool isActive() const 获得定时器状态

如果计时器正在运行,返回true;否则返回false。

Qt提供的public槽函数:

void start(int msec) 启动定时时间间隔为msec毫秒的定时器
void start() 启动定时器
void stop() 暂停定时器

Qt提供的信号

void timeout() 超时

QT静态函数singleShot()

使用这个函数非常方便,因为不需要使用timerEvent或创建本地QTimer对象,这个静态函数会在给定的时间间隔后调用一个槽。

例:这个示例程序在10分钟(60万毫秒)后自动终止,到了定时间隔之后只发送一次信号,槽函数只处理一次。

QTimer::singleShot(600000, this, SLOT(quit()));

QT 定时器使用事项相关推荐

  1. 使用QT定时器遇到的问题

    问题描述: 程序上有槽函数触发频率变化的需求.在使用Qt定时器触发槽函数的过程中发现,每秒钟1000次没有问题,在每秒钟30~50次的情况下出现了延迟. 主体代码如下: std::chrono::ti ...

  2. QT 定时器与动画实现

    前言 Qt提供图形视图框架(Graphics View Framework).动画框架(The Animation Framework)和状态机框架(The State Machine Framewo ...

  3. Qt定时器QBasicTimer、startTimer、QTimer使用总结

    QBasicTimer 这个定时器类是一个 轻量级的.较底层的.被Qt内部使用的定时器类.如果在你的应用程序中使用定时器类,推荐使用QTimer类,而不是这个类.该类和QTimer类类似,也提供sta ...

  4. qt 定时器_Qt开源作品23-颜色拾取器

    ## 一.前言 在做很多项目的UI界面的时候,相信绝大部分人都有过抄袭别人的UI界面尤其是颜色的时候,毕竟十个程序员九个没有审美,或者说审美跟一坨屎一样,大家主要的精力以及擅长点都是在写功能实现具体功 ...

  5. Qt定时器的精度问题

    一.场景 一个网络音频采集场景如下: 数据发送端:嵌入式设备按照16kHz 16Bit连续不断采集音频数据,通过Socket进行发送 数据接受端:QT上位机开一个tcpserver,数据readRea ...

  6. 二、Qt定时器与文本编辑器制作《QT 入门到实战》

    学习目标 了解 qt 的 pixmap 了解 qt 的 label 如何显示图片 了解定时器的开启 了解定时器的关闭 了解文件如何进行读取 了解 QFileDialog 的使用 了解了一个文本编辑器的 ...

  7. win7下配置qt+opencv 注意事项

    根据最近项目需求,需要搞OPENCV,之前有用过MFC,感觉内部使用还是可以的,但是想要弄成可以发布的东东,还是需要比较强大的界面设计的,后来一查,发现QT比较适合,而且还支持跨平台.就风风火火的搞了 ...

  8. QT定时器QTimer

    在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器:一种是使用QTimer类.定时器的精确性依赖于操作系统和硬件,大多数平台支持20ms的精确度. 1.QObject类的定时器 QObj ...

  9. 使用QT定时器 隐藏 label

    widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer> // 定时器对象Q ...

最新文章

  1. 利用Proceesson在线绘制流程图实例演练!流程图的要点和注意事项说明
  2. Smartforms Debug
  3. 用VS2005开发WinCE程序调试图文教程
  4. python3 week4
  5. SqlBulkCopy类进行大数据(一万条以上)插入测试
  6. lua 给userdata设置元表_提高Lua语言开发效率的简单方法
  7. 在mathtype中怎么打出花体字母
  8. WebSite设置首页或是加入收藏夹功能
  9. 原子性 - synchronized关键词
  10. 服务器迁移虚拟化实施方案,服务器虚拟化项目P2V实施及迁移方案v8(31页)DOC
  11. VB2010(1)_Hello User
  12. c 语言回调函数例子,C语言回调函数一个简单的例子
  13. BAT三巨头谁最先进五百强?
  14. Ricequant 平台入门--回测第一个量化交易策略
  15. 注册微信小程序账号 APPID的获取
  16. pb调用计算机默认游览器,PB打开ole控件IE浏览器版本问题_指定Webbrowser控件所用IE内核版本(转)...
  17. Gantt(甘特图)与PERT(项目计划评审技术)图各自的缺陷
  18. Qt修改可执行程序的图标 生成的exe使用自定义的Ico文件
  19. CRT (C run-time library)简介
  20. 前端刷新token,判断token是否过期,若没有过期则刷新token,过期则退出登录

热门文章

  1. 用户行为分析模型——漏斗分析模型(转化率)
  2. 对视频50p,50i 还有25p,25i区别的粗劣解释
  3. 笔记本linux如何降低功耗,win10笔记本电脑怎么降低功耗?笔记本降低功耗的方法(亲测有效)...
  4. 自动化测试之数据库初始化
  5. 集成IOS 环信SDK
  6. 申请阿里云域名SSL证书步骤
  7. Python中的 for 循环语句
  8. 一件程序员的灵异事件,胆小者勿进!
  9. 新冠海淀毒株发病特点
  10. 使用jqprint插件实现打印