赞
踩
定时器在编程中经常要用到,有必要学习一下,记记笔记!
Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类。
1、QObject中的定时器的使用,需要用到三个函数
int QObject::startTimer ( int interval ) ; // 开启定时器并设定间隔,返回定时器ID
void QObject::timerEvent ( QTimerEvent * event ); // 定时器到时处理函数
void QObject::killTimer ( int id ); // 关闭定时器
2、使用QTimer定时器类(可以使用信号与槽)
QTimer *timer = new QTimer(this); // 设置定时器
connect(timer, SIGNAL(timeout()), this, SLOT(onTimeout())); // 连接定时器到时槽函数
void QTimer::start ( int msec ); // 开启定时器并设定间隔
void QTimer::stop(); // 关闭定时器
关于定时器精度:
int QObject::startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer);
void QTimer::setTimerType(Qt::TimerType atype);
Qt Assitant中的原文如下:
enum Qt::TimerType
The timer type indicates how accurate a timer can be.
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
QTimerDisplay.h
- #ifndef QTIMERDISPLAY_H
- #define QTIMERDISPLAY_H
-
- #include <QObject>
- #include <QTimer>
- #include <QTimerEvent>
- #include <QDebug>
-
- class QTimerDisplay : public QObject
- {
- Q_OBJECT
- public:
- explicit QTimerDisplay(QObject *parent = nullptr);
-
- protected:
- // ![0]
- virtual void timerEvent(QTimerEvent *event);
- // ![0]
-
- signals:
-
- public slots:
- // ![1]
- void onTimeout();
- // ![1]
-
- private:
- // ![0]
- int m_nTimerID;
- // ![0]
- // ![1]
- QTimer *m_pTimer;
- // ![1]
- };
-
- #endif // QTIMERDISPLAY_H
QTimerDisplay.cpp
- #include "qtimerdisplay.h"
-
- #define TIMER_TIMEOUT (2*1000)
-
- QTimerDisplay::QTimerDisplay(QObject *parent) : QObject(parent)
- {
- // ![0]
- m_nTimerID = startTimer(TIMER_TIMEOUT);
- // ![0]
- // ![1]
- m_pTimer = new QTimer(this);
- connect(m_pTimer, SIGNAL(timeout()), this, SLOT(onTimeout()));
- m_pTimer->start(1000);
- // ![1]
- }
-
- // ![0]
- void QTimerDisplay::timerEvent(QTimerEvent *event)
- {
- if(event->timerId() == m_nTimerID)
- {
- qDebug() << "Timer ID:" << event->timerId();
- }
- }
- // ![0]
-
- // ![1]
- void QTimerDisplay::onTimeout()
- {
- qDebug() << "Timer is out!";
- }
- // ![1]
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。