首页 > 其他分享 >Qt的延时函数 实现精准延时(转)

Qt的延时函数 实现精准延时(转)

时间:2024-05-29 16:57:08浏览次数:18  
标签:Qt int QTime msec timer QEventLoop 延时 精准

void QUIHelper::delay(int msec)
{ // 这个最准
/*非阻塞方式延时,现在很多人推荐的方法*/
QEventLoop loop;
QTimer::singleShot(msec, &loop, SLOT(quit()));
loop.exec();
}

void QUIHelper::deferred(int msec)
{ // 这个最准
QTimer timer;
timer.setTimerType(Qt::PreciseTimer);
timer.start(msec);
while(timer.remainingTime() > 0)
QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
}

void QUIHelper::sleep(int msec)
{
//非阻塞方式延时,不会卡住主界面
if (msec <= 0) {
return;
}

//#if (QT_VERSION >= QT_VERSION_CHECK(5,0,0))
// QThread::msleep(msec);
//#else
QTime endTime = QTime::currentTime().addMSecs(msec);
while (QTime::currentTime() < endTime) {
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}
//#endif
}

 

https://blog.csdn.net/weixin_41882459/article/details/139282904

标签:Qt,int,QTime,msec,timer,QEventLoop,延时,精准
From: https://www.cnblogs.com/xihong2014/p/18220633

相关文章

  • QT C++实现表头添加组件
    QTableWidget在表头添加组件QTableWidget的表头有一个类QHeaderView是专门处理表头的类,要在表头添加一个类似QCheckBox的组件需要重写一个类并继承QHeaderView。QTableWidget中添加复选框并实现全选居中:自定义类MyHeaderView并继承QHeaderView自定义类MyTableWidget并继承QTa......
  • 【Qt秘籍】[005]-Qt第一次实战-运行
    一、如何创建文件?        当我们打开QtCreator,你会发现整个界面类目繁多。现在,让我们直接开始新建一个项目。1.点击左上角的“文件”==>点击“新建文件或项目”2.如图,选择“Application”==>“QtWifgetsapplication”==>“Choose...” 3.如图,选择填写名称和......
  • 关于Linux中延时函数的分析与实践(转)
    关于Linux中延时函数的分析与实践一、简介  在实际的工程实践中,面对需要程序短暂休眠的情况,我们通常想到的可能是sleep(),usleep(),nanosleep()等函数。但是,在最近阅读代码的过程中,经常会看到使用select()达到延时的目的。本着追根求源(钻牛角尖)的原则,本篇博文,旨在通过具体的实验......
  • Qt 动画类(QPropertyAnimation)
    前言QPropertyAnimation是QT中的一个动画类,用于对目标对象的属性进行动画效果展示。该类继承自QAbstractAnimation类,使用起来非常方便和灵活。一、QPropertyAnimation类介绍QPropertyAnimation可以对任何QObject的子类的属性进行动画的展示,只要该属性是可写的,即存在set方......
  • 【QT6】pycharm集成qt desinger(非anaconda等环境下)
    前言已经安装好了PyQT6,如果没有,请自行选择在项目或者全局打开cmd并输入:pipinstallPyQt6来进行安装!开始安装确定自己是否有安装pyside6,如果有,直接跳到下一步。。如果你没有安装过pyside6,任意地方打开cmd,输入:pipinstallpySide6安装完毕后,找到你python的安装目录:然后点进......
  • Qt UI界面组件介绍
    1.布局类(4种) 2.固定弹簧类(2种)(不随布局变化) 3.按钮类(6种) 4.容器类(10种)GroupBox类似于win7的日历框ToolBox类似于QQ的好友列表Tabwidget类似于 5.输入窗() 6.显示窗()......
  • win11右键子菜单展开增加延时
    展开注册表HKEY_CURRENT_USER\ControlPanel\Desktop在右侧窗格中,查找名为MenuShowDelay的字符串值。如果没有此项,可以右键单击空白处,选择新建>字符串值,然后将其命名为MenuShowDelay。双击MenuShowDelay项,修改其值数据。默认值是400(单位是毫秒)。你可以将其改为更高的......
  • 使用EMQX搭建MQTT服务
    简介:EMQX是一款开源的大规模分布式MQTT消息服务器,功能丰富,专为物联网和实时通信应用而设计。EMQX5.0单集群支持MQTT并发连接数高达1亿条,单服务器的传输与处理吞吐量可达每秒百万级MQTT消息,同时保证毫秒级的低时延。EMQX支持多种协议,包括MQTT(3.1、3.1.1......
  • 西门子学习笔记3 - 工业物联网(MQTT协议服务器的搭建)
    这里使用的是公开测试的一个服务器(EMQX)的服务器EMQX是一款全球下载量超千万的开源物联网MQTT服务器,单集群支持1亿物联网设备连接,消息分发时延低于1毫秒,助力企业构建关键业务的IoT平台与应用。1、服务器文件的下载1、官方下载地址:免费下载、试用EMQ产品(emqx.com......
  • CDGP|数据治理策略揭秘:因企制宜,实现精准管控新高度
    随着信息化、数字化的深入推进,数据已经成为企业最重要的资产之一。如何高效、安全地管理和利用数据,成为企业面临的重要课题。数据治理策略的制定与实施,成为解决这一问题的关键所在。本文将探讨如何因企制宜,制定符合企业实际情况的数据治理策略,实现精准管控新高度。理解数据治......