QT开发中文网

monitorTimer = new QTimer; connect(monitorTimer, &QTimer::timeout, this, &CDiskCapacityManage::slotDistStatus, Qt::DirectConnection); qDebug() start(msecsToTarget);如何让第一...

要实现第一次触发延迟msecsToTarget毫秒,后续每次触发间隔为24小时,可以使用以下方法:

  1. 在类的头文件中添加私有变量:
private:
    QTimer* monitorTimer; // 定时器对象
  1. 在类的构造函数或初始化函数中进行如下操作:
monitorTimer = new QTimer(this);
connect(monitorTimer, &QTimer::timeout, this, &CDiskCapacityManage::slotDistStatus);

// 判断是否已经过了msecsToTarget的时间,若是则将定时器设置为24小时后触发;否则设置为msecsToTarget后触发。
int delayDuration = (msecsToTarget > 0) ? msecsToTarget : (24 * 60 * 60 * 1000); 
monitorTimer->start(delayDuration);

这样,第一次触发会根据msecsToTarget来确定延迟的时间,如果msecsToTarget大于0,则表示还需要等待一段时间;如果小于等于0,则表示已经过了目标时间。后续每次触发间隔都会被设置为24小时。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=8340

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?