qt QTimer详解
QTimer 介绍
1、概述
QTimer 是 Qt 库中用于定时操作的类,它提供了定时器信号和单触发定时器功能。QTimer 内部使用定时器事件来提供更通用的定时器功能,使得它能够在特定时间间隔触发事件。QTimer 在实现周期性任务(如每隔一段时间刷新界面或获取数据)、延时操作和动画(如在固定时间间隔内更新动画帧)等场景中非常有用。在 GUI 应用程序中,QTimer 通常用于定时刷新界面、执行后台任务等。
2、重要方法
QTimer 类的重要方法包括:
- QTimer(QObject *parent = nullptr):构造函数,创建一个 QTimer 对象,可以指定一个父对象。
- int start(int msec, bool sshot = false):开始一个定时器,设置定时时间间隔为 msec 毫秒。如果 sshot 为 true,则定时器将只触发一次;否则,它将持续触发,直到被停止。
- void stop():停止定时器。
- void setInterval(int msec):设置定时器的时间间隔为 msec 毫秒。
- void setSingleShot(bool singleShot):设置定时器是否为单次触发。如果为 true,则定时器在超时后将自动停止;如果为 false,则定时器将持续触发。
- static void singleShot(int msec, QObject *receiver, const char *member):静态方法,创建一个单次触发的定时器,在 msec 毫秒后调用 receiver 对象的 member 槽函数。
3、重要信号
QTimer 类的重要信号包括:
- void timeout():这是 QTimer 的默认信号,当定时器超时(即达到设定的时间间隔)时会触发该信号。
#include <QApplication>
#include <QTimer>
#include <QDebug> class MyObject : public QObject { Q_OBJECT public slots: void onTimeout() { qDebug() << "Timer timeout"; }
}; int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建一个 QTimer 对象 QTimer timer; // 设置定时器的超时时间为 1 秒(1000 毫秒) timer.setInterval(1000); // 创建一个 MyObject 对象 MyObject obj; // 连接定时器的 timeout() 信号到 MyObject 的 onTimeout() 槽函数 QObject::connect(&timer, &QTimer::timeout, &obj, &MyObject::onTimeout); // 启动定时器 timer.start(); // 进入应用程序的主事件循环 return app.exec();
}
觉得有帮助的话,打赏一下呗。。