QT主线程中怎么写延时函数sleep

提出问题:

  1. Qt 为什么没有提供跨平台的 sleep 函数?
  2. 使用平台相关的 Sleep 或 nanosleep 以后,界面为什么没有反应?
  3. QThread 中提供了protected 权限的 sleep 函数,如何用到主线程中?
  4. 使用 QTest 中的 qSleep,在windows下如何隐藏控制台?

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

Qt不提供,是因为你不需要在主线程中使用 sleep 函数。

如何解决:

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

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

本文转载自:https://blog.csdn.net/dbzhang800/article/details/6300425

你可能感兴趣的:(QT主线程中怎么写延时函数sleep)