Qt线程外使用Sleep

Posted zhangnianyong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt线程外使用Sleep相关的知识,希望对你有一定的参考价值。

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

四:方法4
QEventLoop eventloop;
QTimer::singleShot(100, &eventloop, SLOT(quit()));
eventloop.exec();

以上是关于Qt线程外使用Sleep的主要内容,如果未能解决你的问题,请参考以下文章

Qt线程在sleep时能否处理信号

qt sleep

qt多个线程调用同一个类怎么处理

Qt 延时处理的几种办法

QT5 Thread线程

自己动手写QT多线程demo