一:方法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();