QTimer::singleShot()函数舉一個例子
时间: 2024-03-06 12:50:23 浏览: 190
Qt基础开发之Qt多线程类QThread与Qt定时器类QTimer的详细方法与实例
下面是一个使用QTimer::singleShot()函数的例子:
```c++
#include <QApplication>
#include <QLabel>
#include <QTimer>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel label("Hello, World!");
label.show();
// 在2秒后修改标签文字
QTimer::singleShot(2000, [&]() {
label.setText("Hello, Qt!");
});
return app.exec();
}
```
这个例子中,程序启动后会显示一个标签,文字为"Hello, World!"。接着,使用QTimer::singleShot()函数,在2秒后执行一个lambda表达式,将标签的文字修改为"Hello, Qt!"。当定时器超时时,事件循环会将该事件放入事件队列中,等待事件循环处理。当事件循环处理到该事件时,就会执行lambda表达式,将标签文字修改为"Hello, Qt!"。在此期间,主线程不会阻塞,也不会受到影响。
阅读全文