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