Qt定时器的两种启动方式
- 根据通过一个int变量在定时器事件启动
- 通过QTimer变量发出的timeout信号启动
一、通过int变量启动定时器
步骤:
- 在类头文件中定义一个整形的成员变量和导入相应头文件
#include <QTimer>
#include <QTimerEvent>
int m_timer;
- 将timerEvent函数添加在类头文件中
void timerEvent(QTimerEvent *event);
该类实现如下:
void CTimerTest::timerEvent(QTimerEvent *event)
{
Q_UNUSED(event);
qDebug() << __FUNCTION__;
}
- 在需要开始定时器位置启动定时器(定义好后每隔定义的事件都会调用timerEvent事件)
m_timer = startTimer(1000);
二、 通过QTimer变量发出的timeout信号启动
步骤:
- 在类头文件中定义一个整形的成员变量和导入相应头文件
#include <QTimer>
QTimer *m_timer;
- 在类头文件中定义和timeout信号连接的槽函数
public slots:
void on_timeOut();
该类实现如下:
void CTimerTest::on_timeOut()
{
qDebug() << __FUNCTION__;
}
- 启动定时器,并连接其槽函数
m_timer = new QTimer;
m_timer->start(1000);
connect(m_timer, &QTimer::timeout, this, &CTimerTest::on_timeOut);
总结
定时器在很多时候都会使用,如测试连接是否断开,需要隔一段时间做某事等情况;第一种方法适合定时器使用较少的时候,第二种方法适合一个类中包含多个定时器的情况
注:本文仅为作者编程过程中所遇到的问题和总结,并非代表绝对正确,若有错误欢迎指出。 注:如有侵权,联系作者删除
|