qt延时函数sleep
时间: 2023-08-14 18:10:51 浏览: 338
在 Qt 中,可以使用 QTimer 来实现延时操作,而不推荐使用阻塞的延时函数。以下是一个示例代码:
```cpp
#include <QCoreApplication>
#include <QTimer>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建 QTimer 对象
QTimer timer;
// 设置单次触发,即延时一次后停止
timer.setSingleShot(true);
// 设置延时时间为 2000 毫秒(2 秒)
timer.setInterval(2000);
// 连接超时信号到槽函数
QObject::connect(&timer, &QTimer::timeout, [&]() {
// 这里是延时后要执行的代码
qDebug() << "延时操作";
// 延时结束后,关闭应用程序
QCoreApplication::quit();
});
// 启动定时器
timer.start();
// 运行事件循环
return a.exec();
}
```
上述代码中,我们使用 QTimer 创建一个定时器对象,并设置它的延时时间为 2000 毫秒(2 秒)。然后,我们连接了定时器的 timeout 信号到一个槽函数中,在槽函数中执行延时结束后的操作。在最后,我们启动了定时器并运行了 Qt 的事件循环。
这种方式避免了使用阻塞函数 sleep,保持了程序的响应性。
阅读全文