以下是一个简单的Qt定时器demo:
#include <QApplication>
#include <QLabel>
#include <QTimer>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel label("Hello, Qt!");
label.show();
QTimer timer;
QObject::connect(&timer, &QTimer::timeout, [&]() {
static int count = 0;
label.setText(QString("Count: %1").arg(count++));
});
timer.start(1000); // 每隔1秒钟触发一次定时器
return app.exec();
}
这个demo创建了一个标签,然后创建了一个定时器,每隔1秒钟更新一下标签的文本。可以看到,在定时器超时信号与槽函数之间使用了lambda表达式。在lambda表达式中,定义了一个静态变量count
,用来记录当前计数值,并将其转换为字符串设置为标签的文本。
在启动定时器之前,需要调用它的start()方法,传入超时间隔(单位毫秒),让它开始工作。在这个demo中,我们将超时间隔设为1000毫秒(即1秒钟)。
最后,在程序退出前必须调用app.exec()
进入Qt事件循环。这样才能让定时器正常工作。