Qt定时器使用示例

Qt 的定时器功能用起来还挺方便的,尤其是写一些需要周期执行的任务时,比如自动保存、轮询求、或者搞点动效啥的。这份源码就挺适合入门和实战结合看的,讲了三种定时器的用法,重点放在了QTimer身上,毕竟它最灵活,用起来也顺手。代码示例清晰,编译环境是 Win10 + MinGW,基本不折腾就能跑起来。

Qt 的定时器有三种:QBasicTimerQTimerQEventLoop::Timer,日常开发用最多的就是QTimer。它的信号槽机制用起来真的省事,直接connect绑定好timeout()信号,start()一开,定时任务就自己跑了。

源码里也贴心地演示了几个核心方法:start()启动定时器、stop()结束它,还有一个挺实用的singleShot(),一次性定时任务搞起来就靠它了。写法也挺直观的,像下面这样:

#include 
#include 

class MyClass : public QObject { Q_OBJECT public: MyClass(QObject *parent = nullptr) : QObject(parent) { QTimer *timer = new QTimer(this); connect(timer, &QTimer::timeout, this, &MyClass::handleTimeout); timer->start(1000); // 每 1 秒触发一次 }

private slots: void handleTimeout() { qDebug() << "定时器触发啦!"; } };

你写 UI 时想定时刷新组件,或写逻辑层网络重试,用QTimer都挺合适。唯一要注意的就是别忘了对象的生命周期,定时器和槽函数的对象得活着,不然容易崩。

如果你还不熟 Qt 的信号槽机制,推荐看看Qt 信号与槽机制:多槽连接,入门挺快的。

zip 文件大小:3.01KB