qt 几种延时方法及精度对比

不多说了,直接上代码+注释:

void simpleWait(int msec)
{
    // 时间的精度只有10ms
    /*QTime dieTime = QTime::currentTime().addMSecs(msec);

    while (QTime::currentTime() < dieTime)
        QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);*/

    // 比实际多2~3秒
    /*QDeadlineTimer timer(msec,Qt::PreciseTimer);
    while(!timer.hasExpired())
        QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);*/

    // 这个时间更长
    /*QElapsedTimer timer;

    timer.start();
    while(!timer.hasExpired(msec))
        QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);*/

    // 这个最准
    QTimer timer;

    timer.setTimerType(Qt::PreciseTimer);
    timer.start(msec);
    while(timer.remainingTime() > 0)
        QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
}


本文为3YL原创,转载无需联系,但请注明来自labisart.com。

原创文章不易,如果觉得有帮助,可打赏或点击右侧广告支持:

查看打赏记录

发表评论请遵守党国法律!后台审核后方可显示!
  • 最新评论
  • 总共0条评论
  • Blog v1.1© 2021 labisart.com 版权所有 | 联系:labartwork@163.com