zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    LOJ #6183 看无可看
    BZOJ 5467 Slay the Spire
    BZOJ 5306 [HAOI2018] 染色
    BZOJ 2784 时间流逝
    BZOJ4911: [Sdoi2017]切树游戏
    min-max 容斥
    BZOJ 5475: [WC 2019] 数树
    BZOJ 2810 [Apio2012]kunai
    Codeforces round 1083
    详解大数据数据仓库分层架构
  • 原文地址:https://www.cnblogs.com/zhangnianyong/p/7110541.html
Copyright © 2011-2022 走看看