一:方法1
QTime t; t.start(); while(t.elapsed()<1000)
{ QCoreApplication::processEvents();
}
二:方法2
QElapsedTimer t; t.start(); while(t.elapsed()<1000)
{ QCoreApplication::processEvents();
}
三:方法3
QTest::qWait
源代码:
namespace QTest { inline static void qWait(int ms) { Q_ASSERT(QCoreApplication::instance()); QElapsedTimer timer; timer.start(); do { QCoreApplication::processEvents(QEventLoop::AllEvents, ms); QTest::qSleep(10); } while (timer.elapsed() < ms); }
voidQTest::qSleep(int ms)
{
if(ms < 0) return;
#ifdef Q_OS_WIN32
Sleep(ms);
#elif defined Q_OS_LINUX
struct timespec ts = {ms/1000,(ms%1000)*1000*1000};//秒和纳秒
nanosleep(&ts,NULL);
}
四:方法4
QEventLoop eventloop;
QTimer::singleShot(100, &eventloop, SLOT(quit())); eventloop.exec();