QT学习笔记(七):定时器事件的3种常用使用方式
QT学习笔记(七):定时器事件的2种常用使用方式
Qt中定时器的使用有2种方法:一种是使用QObject类提供的定时器通过重载 timerEvent 事件处理过程函数,一种就是使用QTimer类。
其中QTimer 类来实现定时器使用的更多,它提供了更高层次的编程接口,比如可以使用信号和槽,还可以设置只运行一次的定时器。
1.使用QObject类提供的定时器
头文件添加:
private:int id1, id2, id3;
protected:void timerEvent(QTimerEvent *event); //声明定时器时间
源文件添加:
// 构造函数id1 = startTimer(1000); // 开启一个1秒定时器,返回其IDid2 = startTimer(1500);id3 = startTimer(2200);void Widget::timerEvent(QTimerEvent *event)
{QTime time = QTime::currentTime(); // 获取当前时间QString text = time.toString("hh:mm"); // 转换为字符串if((time.second() % 2) == 0)text[2]=' '; // 每隔一秒就将“:”显示为空格ui->lcdNumber->display(text);qDebug() << "timer1";}else if (event->timerId() == id2) {qDebug() << "timer2";}else {qDebug() << "timer3";}
}
通过从startTimer返回的ID传入void QObject::killTimer ( int id ) 函数中杀死定时器,结束定时器进入超时处理。
killTimer (id1);
2.使用QTimer定时器类
头文件添加:
private slots:void timerUpdate(); // 声明定时器溢出函数
源文件添加:
#include <QTimer>// 构造函数
QTimer *timer = new QTimer(this); // 创建一个新的定时器
connect(timer, &QTimer::timeout, this, &Widget::timerUpdate); // 关联定时器的溢出信号到槽上
timer->start(1000); // 设置溢出时间为1秒,并启动定时器void Widget::timerUpdate() // 定时器溢出处理
{QTime time = QTime::currentTime(); // 获取当前时间QString text = time.toString("hh:mm"); // 转换为字符串if((time.second() % 2) == 0)text[2]=' '; // 每隔一秒就将“:”显示为空格ui->lcdNumber->display(text);
}
结果:
只运行一次的定时器:
QTimer::singleShot(10000, this, &Widget::close);
QT学习笔记(七):定时器事件的3种常用使用方式相关推荐
- OpenCV学习笔记(二):3种常用访问图像中像素的方式
OpenCV学习笔记(二):3种常用访问图像中像素的方式 #include <opencv2/opencv.hpp>using namespace cv; using namespace ...
- QT学习笔记之对话框
QT学习笔记之对话框 对话框是一种用户界面(窗口),它的主要功能是输出信息和接收用户的输入.在每个对话框内一般都有一些控件,对话框依靠这些控件与用户进行交互. 1) 模式对话框:用户只能与 ...
- day03_js学习笔记_03_js的事件、js的BOM、js的DOM
day03_js学习笔记_03_js的事件.js的BOM.js的DOM ================================================================ ...
- websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证...
Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证 2年前 阅读 3678 评论 0 喜欢 0 ### 0.前言 前面基本的WebSocket操作,我们基本都 ...
- Qt 学习笔记(5)绘图 五子棋游戏
在上一篇博客C++ Qt学习笔记(4)绘图中介绍了Qt中的绘图方法,基于上一篇的博客的知识,使用QPainter设计一个五子棋的棋盘,后续会完成五子棋的游戏设计. 1. 棋盘的设计 首先需要绘制棋盘的 ...
- 【K210】K210学习笔记七——使用K210拍摄照片并在MaixHub上进行训练
[K210]K210学习笔记七--使用K210拍摄照片并在MaixHub上进行训练 前言 K210准备工作 K210如何拍摄照片 准备工作 拍摄相关代码定义 用K210拍摄到的照片在MaixHub平台 ...
- ESP32学习笔记(七) 复位和时钟
ESP32学习笔记(七) 复位和时钟 目录: ESP32学习笔记(一) 芯片型号介绍 ESP32学习笔记(二) 开发环境搭建 VSCode+platformio ESP32学习笔记(三) 硬件资源介绍 ...
- QT学习笔记(摘抄)
QT学习笔记-1.QT主要的对象 说来惭愧学习c++很长时间了一直没有使用c++开发过软件界面 所以现在想认认真真的学习一个c++图形界面框架库 本来想学习Xwidget但是这个资料不大好找 有啥问题 ...
- STM32学习笔记(七)---SysTick
STM32学习笔记(七)-SysTick 文章目录 STM32学习笔记(七)---SysTick 一.SysTick简介 二.SysTick功能框图 三.SysTick寄存器 四.SYSTICK使用 ...
最新文章
- Oracle-AWR性能报告解读
- 中年离职的平庸产品,该如何面对人生的下半场?
- C++——《数据结构与算法》实验——排序算法的实现
- python需要联网运行吗_如何暂停在终端中运行的python脚本
- 工作305:对选择的数值清空
- 算法高级(11)-缓存淘汰算法研究
- Tomcat学习总结(16)—— Tomcat优化时的参数分析
- Java学习——继承和多态
- 如何写论文?看下这份《科研论文撰写策略》为你指点一二
- Borland Delphi7 企业版注册方法
- 易语言mysql 记录集_求一个易语言返回mysqlcha询结果记录集的例子
- 绕过IceSword文件检测的Trojan.Win32.Mnless.zpc/ojj6erv.sys
- jeecms mysql_jeecms学习笔记
- 判断今天是星期几 暴力枚举
- Cell Host | 张群业/王哲/张澄-肠道微生物群失调加重腹主动脉瘤
- OSChina 周一乱弹 —— 鱼生不值得
- Python 科赫曲线绘制
- 史上最全的边缘计算应用场景
- 你的华为手机还会卡?那是这3个功能没设置吧,越早关掉越好
- 步步为营-墙棋AI人机对战(Android)
热门文章
- 自己动手写cpu 光盘_自己动手写CPU配套源码
- java json转二进制数据_JSON字符串中的二进制数据 . 比Base64更好的东西
- 非线性回归 - 案例按步骤详解 -(SPSS建模)
- 计算机网络划分的标准,计算机网络基础
- 图灵奖大佬+谷歌团队,为通用人工智能背书!CV 任务也能用 LM 建模!
- CAT 3.0 开源发布,支持多语言客户端及多项性能提升
- 论文浅尝 | 用对抗学习做知识表示(NAACL2018)
- 各种损失函数比较-带你斩获offer
- Android官方开发文档Training系列课程中文版:管理系统UI之隐藏状态条
- Android官方开发文档Training系列课程中文版:创建自定义View之View的优化