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();
  • 相关阅读:
    Static了解和复习继承。
    复习篇1.对象和封装
    第一章笔记
    A + B Problem II
    Number Sequence
    Fibonacci Again
    8615 快乐
    8635 气球
    大牛之路II
    8617 阶乘数字和
  • 原文地址:https://www.cnblogs.com/zhangnianyong/p/7110541.html
Copyright © 2011-2022 走看看