• 5294阅读
  • 7回复

[讨论]QTimer问题 [复制链接]

上一主题 下一主题
离线icyrat
 

只看楼主 倒序阅读 楼主  发表于: 2011-12-02
各位,谁明白QTimer的东东,比如我定时1秒,但是槽函数要2秒才可以执行完,那么定时器会在1秒的时候重新执行?还是相当于定时器是2秒?  再或者我退出这个类的时候,如果正好定时器在执行会事什么样的情况。
离线luckyyoung

只看该作者 1楼 发表于: 2011-12-02
我觉得QTimer这个类本身是没有什么问题的。可能你调用的时候,触发了两次吧?我原来把QTimer放在一个函数里,然后用信号将其连接,一不小心,触发了好几次,就出现跟你类似的情况了。再检查下吧:)
祝你成功!
Anything is possible!
离线wxj120bw

只看该作者 2楼 发表于: 2011-12-02
回 楼主(icyrat) 的帖子
先说第二个问题 退出类可以理解为释放类对象内存 若是以delete ***;释放内存且定时器未执行完时 则程序可能崩溃 其他情况省略
对第一个问题实践下,发现定时器会在槽执行完再重新计算间隔时间。

离线oceanljp

只看该作者 3楼 发表于: 2011-12-03
离线icyrat

只看该作者 4楼 发表于: 2011-12-03
回 2楼(wxj120bw) 的帖子
第二种情况,我退出的时候用的是 deleteLater(),貌似这个函数会等待QTimer执行完才执行吧
第一种情况,是这样的,如果槽的时间比QTimer定的要多那么会等待执行完再开始计时
离线icyrat

只看该作者 5楼 发表于: 2011-12-03
回 3楼(oceanljp) 的帖子
呵呵
离线wxj120bw

只看该作者 6楼 发表于: 2011-12-03
回 4楼(icyrat) 的帖子
deleteLater()函数会判断对象执行完再释放其内存
离线dbzhang800

只看该作者 7楼 发表于: 2011-12-04
Re:回 2楼(wxj120bw) 的帖子
引用第4楼icyrat于2011-12-03 15:59发表的 回 2楼(wxj120bw) 的帖子 :
第二种情况,我退出的时候用的是 deleteLater(),貌似这个函数会等待QTimer执行完才执行吧
第一种情况,是这样的,如果槽的时间比QTimer定的要多那么会等待执行完再开始计时

这个结论是不正确(或者说不准确)的(因为至少在Windows下不是这样)。
快速回复
限100 字节
 
上一个 下一个