• 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);
        }
    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();
  • 相关阅读:
    单词统计
    学习进度_第十周
    学习进度_第九周
    典型用户、场景分析
    一维数组4.25
    《构建之法》阅读笔记03
    学习进度_第八周
    《构建之法》阅读笔记02
    夏壹队——nabcd
    个人作业阶段二 4
  • 原文地址:https://www.cnblogs.com/zhangnianyong/p/7110541.html
Copyright © 2020-2023  润新知