您的位置:首页 > 编程语言 > Qt开发

关于在Qt里让程序休眠一段时间的方法总结

2017-07-07 13:50 507 查看
论坛上不时见到有人问:

Qt 为什么没有提供跨平台的 sleep 函数?

使用平台相关的 Sleep 或 nanosleep 以后,界面为什么没有反应?

QThread 中提供了protected 权限的 sleep 函数,如何用到主线程中?

使用 QTest 中的 qSleep,在windows下如何隐藏控制台?

这些问题其实归结为一点:在主线程中使用这些函数是一种错误,这会直接导致界面无法刷新,用户与程序无法交互。

Qt不提供,是因为你不需要在主线程中使用 sleep 函数。
如何让程序等待一段时间QTime

 
QTime t; t.start(); while(t.elapsed()<1000);

这种死循环也是一种常见错误用法。但改成正确的还是比较简单的:

 
QTime t; t.start(); while(t.elapsed()<1000) QCoreApplication::processEvents();

不停地处理事件,以使得程序保持响应。

Fr:http://blog.chinaunix.net/uid-25806493-id-3338960.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt