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();
  • 相关阅读:
    Django(一)
    web 框架
    图片
    day16
    day 15
    day14 HTML CSS
    day12
    day11
    python IO多路复用,初识多线程
    python socket
  • 原文地址:https://www.cnblogs.com/zhangnianyong/p/7110541.html
Copyright © 2011-2022 走看看