目录

一、QTimer类使用

1、使用start开启 重复循环定时任务

2、单次延迟任务

3、超时为0的任务

4、一个综合点的例子


The QTimer class provides repetitive and single-shot timers. This class provide a high level programming interface for timers.

QTimer类提供重复和单次的定时器。

一、QTimer类使用

1、使用start开启 重复循环定时任务

First create a QTimer and then connect the timeout() signal to the appropriate slots. Call start() on the timer. From then on the timer will emit the timeout() signal at constant intervals.

首先创建一个 QTimer,然后将 timeout() 信号连接到适当的槽。 在计时器上调用 start()。 从那时起,计时器将以恒定的时间间隔发出 timeout() 信号。

QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);

每一秒执行一次update()

In the example above, the update() slot is called once every second.

2、单次延迟任务


void QTimer::singleShot (   int     msec,
const QObject *     receiver,
const QString &     slotMethod
)   
QTimer::singleShot(200, this, SLOT(updateCaption()));

又如:

#include <QApplication>
#include <QTimer>int main(int argc, char *argv[]) {QApplication app(argc, argv);QTimer::singleShot(600000, &app, SLOT(quit()));...return app.exec();
}

3、超时为0的任务

QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(processOneThing()));
timer->start();

超时为 0 的 QTimer 将在处理完窗口系统事件队列中的所有事件后立即超时。 这可以用来做繁重的工作,同时提供一个活泼的用户界面:

4、一个综合点的例子

 recordingTimerDisplay = new QTimer(this);QObject::connect(recordingTimerDisplay, SIGNAL(timeout()), this,SLOT(UpdateRecordTimerDisplay()));recordingTimerDisplay->start(1000);if (recordingTimerDisplay->isActive())recordingTimerDisplay->stop();
 recordingTimer = new QTimer(this);int total = (((hours * 3600) +(minutes * 60)) +seconds) * 1000;if (total == 0)total = 1000;recordingTimer->setInterval(total);recordingTimer->setSingleShot(true);QObject::connect(recordingTimer, SIGNAL(timeout()),SLOT(EventStopRecording()));recordingTimer->start();if (recordingTimer->isActive())recordingTimer->stop();

参考资料:CopperSpice API : QTimer Class Reference

QT 定时器 QTimer 使用相关推荐

  1. QT定时器QTimer

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

  2. Qt学习(七):定时器QTimer

    知识点 Qt中定时器QTimer的使用 完整项目github地址: https://github.com/taw19960426/Qt_study/tree/main/QTimer 结果演示 widg ...

  3. Qt中利用定时器QTimer实时显示当前日期和时间

    Qt中利用定时器QTimer实时显示当前日期和时间 时显示当前日期和时间.下面说明方法: 1. 在工程中声明一个全局QTimer对象 QTimer *timer; 2. 在构造函数中定义QTimer, ...

  4. QT 笔记4 | 资源和图像 目录(QDir)和定时器(QTimer) 鼠标和键盘

    一 资源和图像 1 资源编译器(rcc) 1)创建资源文件(.qrc) eg:<RCC><qresource prefix="/"><file> ...

  5. QT 中QTimer 和 startTimer()的区别

    最需要注意一点 请注意,QTimer的准确性取决于底层操作系统和硬件.timerType参数允许您自定义计时器的准确性.有关不同计时器类型的信息,请参见Qt::TimerType.大多数平台支持20毫 ...

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

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

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

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

  8. QT之QTimer详解以及结合多线程中开启定时器的示例

    一 QTimer详解 QTimer类提供了重复和单次触发信号的定时器. a.void timeout ()定时器超时后,这个信号被发射. b.void start()开启定时器,它的重载函数void ...

  9. Qt之QTimer(定时器)

    QTimer在界面中不可见,在UI设计器中也找不到它,只能通过纯代码实现,主要作用是定时特定的时间. 想要掌握QTimer只需掌握setInterval(设置定时时间,单位ms).start(启动定时 ...

最新文章

  1. python可以做测试软件吗_Python如何给你的程序做性能测试
  2. 基于Apache(without ssl)的svn环境搭建
  3. 进程在与Windows Process Activation Service通信时出现严重错误 w3wp.exe错误
  4. 3个步骤,4大平台,完成大规模数据处理
  5. aix oracle监听配置_Oracel:ORA-12518:监听程序无法分发客户机连接
  6. Springboot中常用的文件上传和下载通用接口
  7. asp,net 读写cookie(个人笔记)
  8. AI 降噪、多平台支持,在线课程背后的黑科技大公开!
  9. php 判断赋值 简写,PHP IF 判断简写
  10. 在Sql Server 2008上安装SDE 9.3
  11. Silverlight WCF RIA服务(二十九)Silverlight 客户端 10
  12. Nginx 读写分离详解
  13. 用PHP写距离圣诞节还有多久,距离圣诞节还有多少天
  14. 粒子群算法 模拟退火算法
  15. wps文字表格制作拼音田字格模板_用WPS表格快速制作拼音田字格的方法
  16. 【IoT】Android/TI 蓝牙 profile 详解
  17. SQL中的笛卡尔你真的懂吗?
  18. 六十分之五——时间都去哪儿了?
  19. html项目答辩策划书,答辩会策划书范文.doc
  20. mac m1 tensorflow环境安装问题

热门文章

  1. yum下载下来的文件保存在哪个路径?
  2. 一天一条Linux指令-clear
  3. Linux配置免密登录单机和全分布
  4. python工程师需要什么技能_成为爬虫工程师需要哪些技能
  5. 《霸三国Online》玩家攻城攻略详解
  6. 深度学习之网络可视化
  7. 测试经理需要了解的有关测试过程的知识
  8. layui后台管理、图片裁切、cropper富文本编辑器实现
  9. 蚂蚁云原生应用运行时的探索和实践 - ArchSummit 上海
  10. IPv6改造方案:隧道技术