1、说明

QTimer类代表计时器,为了正确使用计时器,可以构造一个QTimer,将它的timeout()信号connect到合适的槽,之后调用start()。然后,这个QTimer就会每隔interval就发送一个timeout()信号。

一个间隔为1s(1000ms)的计时器

QTimer * timer = new QTimer(this);
connect(timer , &QTimer::timeout , this , QOverload<>::of(&AnalogClock::update));
timer->start(1000);

本例中,在start()计时器之后,update()槽函数将被每秒调用一次。

如果想要只超时一次,可以调用方法setSingleShot( true )。我们可以通过调用静态方法QTimer::singleShot()来在指定interval之后调用某个槽函数:

QTimer::singleShot(200,this,&Foo::updateCaption);

在多线程应用中,我们可以在每个使用事件循环(event looop)的线程中使用QTimer。使用QThread::exec()方法,可以从非GUI线程中start event loop。Qt使用计时器的 thread affinity(线程事务)去决定发送哪个timeout()信号。因此,只需要在一个线程中start或stop计时器就可以了。

2、模块和加载项

Header #include<QTimer>
qmake QT += core
Inherits QObject

3、属性

类型

属性

说明

getter与setter

信号

bool active 当计时器运行时,这个属性是true,否则是false  isActive()  
int interval 计时器间隔(毫秒)

interval()

setInterval(int msec)

setInterval(std::chrono::milliseconds value)

 
int remainingTime 到计时器停止的剩余时间(毫秒) remainingTime()  
bool singleShot 该计时器是否是单响计时器

isSingleShot()

setSingleShot(bool singleShot)

 
TimerType timerType 控制计时器的精度

timerType()

setTimerType(Qt::TimerType atype)

 

4、构造

QTimer(QObject *parent = nullptr)

在给定的parent上构造计时器

5、成员方法

返回值类型

方法

说明

QMetaObject::Connection callOnTimeout(Functor slot, Qt::ConnectionType connectionType = Qt::AutoConnection)  建立信号与槽之间的连接,等价于调用QObject::connect(timer , timeout() , receiver , slot , connectionType)
 callOnTimeout(const QObject *context, Functor slot, Qt::ConnectionType connectionType = Qt::AutoConnection)
callOnTimeout(const QObject *receiver, MemberFunction *slot, Qt::ConnectionType connectionType = Qt::AutoConnection 
 int interval()   

std::chrono::milliseconds

intervalAsDuration()   返回interval对应的std::chrono::milliseconds对象
 bool isActive()  当计时器运行时返回true,否则false
 bool remainingTime()   
std::chrono::milliseconds  remainingTimeAsDuration()   返回remaining time对应的std::chrono::milliseconds对象
 void     setInterval(int msec)  
setInterval(std::chrono::milliseconds value  
 setSingleShot(bool singleShot)  
setTimerType(Qt::TimerType atype  
 void start(int msec 重启一个interval为msec的计时器
 int timerId()  返回计时器的ID
 Qt::TimerType timerType()   

5.5、静态方法

void singleShot( ... )  设置一个单响计时器

6、槽

槽函数

说明

start() 启动计时器(如果已经启动则重启)
start(int msec) 重启一个间隔为msec的计时器 
stop() 停止计时器 

7、信号

timeout() 超时是发送该消息

最新文章

  1. mybatis配置-返回date类型丢失时间
  2. JavaSE基础第一篇
  3. 嵌入式linux开发环境构建
  4. Nginx和PHP-FPM的启动/重启脚本 [转发]
  5. apt-get 的常用使用说明
  6. I/B/P SP/SI
  7. Server Library [Apache Tomcat v6.0](unbound)服务未绑定解决办法
  8. iOS:插件制作入门
  9. LittleTool之批量修改材质
  10. MySQL5.7.9免安装版配置方法
  11. 有了screen,妈妈再也不用担心我的学习啦
  12. Hacker(12)----个人计算机安全防护策略
  13. RHEL 7.0 修改防火墙配置
  14. Hibernate 查询:HQL查询(Hibernate Query Languge)
  15. Playground中格式注释语法
  16. Java之谜 —— 来自Neal Gafter的演讲
  17. 前端js面向对象编程以及封装组件的思想
  18. C语言学习及应用笔记之七:C语言中的回调函数及使用方式
  19. OpenCV学习笔记(二) - 写入视频、jpg格式
  20. 在javascript中toString 和valueOf的区别

热门文章

  1. Allure测试报告完整学习笔记
  2. python变量垃圾回收机制的入门使用
  3. pwnkit漏洞分析-CVE-2021-4034
  4. 【C++】【源码解读】std::is_same函数源码解读
  5. shell下快捷键
  6. iOS中通过链接地址打开指定APP并传参 by徐文棋
  7. iOS多线程总览 --By 吴帮雷
  8. K8s 部署 Dashboard UI 仪表板 ——让一切可视化
  9. 快速搭建springboot工程
  10. 什么是rest?restful?