QTimer如何与lambda搭配使用
时间: 2024-01-22 17:04:07 浏览: 210
QTimer可以与lambda表达式搭配使用,实现定时器超时后执行指定的操作。具体步骤如下:
1. 在程序中添加以下头文件:
```
#include <QTimer>
```
2. 创建QTimer对象并设置定时器超时时间和单次/循环触发:
```
QTimer *timer = new QTimer(this);
timer->setInterval(1000); // 设置定时器超时时间为1秒
timer->setSingleShot(true); // 设置为单次触发
```
在上面的代码中,创建了一个1秒超时的单次触发定时器。
3. 将lambda表达式与定时器超时信号连接起来:
```
connect(timer, &QTimer::timeout, [=]() {
// 定时器超时后执行的操作
});
```
在上面的代码中,使用connect()函数将定时器的timeout信号与lambda表达式连接起来,当定时器超时时,lambda表达式中的代码会被执行。
4. 启动定时器:
```
timer->start();
```
在上面的代码中,启动定时器,定时器超时后会执行lambda表达式中的代码。
完整示例代码如下:
```
QTimer *timer = new QTimer(this);
timer->setInterval(1000);
timer->setSingleShot(true);
connect(timer, &QTimer::timeout, [=]() {
qDebug() << "定时器超时";
});
timer->start();
```
上面的代码中,定时器超时后会输出"定时器超时"。
阅读全文