首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

connect放在单次定时器启动前和启动后的区别,求解答解决思路

2012-01-20 
connect放在单次定时器启动前和启动后的区别,求解答定义了一个定时器,设置为单次定时器,将定时器与一个槽

connect放在单次定时器启动前和启动后的区别,求解答
定义了一个定时器,设置为单次定时器,将定时器与一个槽函数connect,固定时常后触发。

现在发现一个现象:
1、将connect放在start函数之前,槽函数只执行一次,正常;
2、但是将connect放在start函数之后,槽函数执行了多次,(多次试验测试,发现次数不定)。

求解,为什么啊?

[解决办法]
应用程序的定时器都是由一个衍生多个,定时器的oneshot属性应该不能被实时响应很正常,定时器开启时就会按照默认的循环,具体什么时候能响应oneshot的设置就不一定了
[解决办法]

探讨

在项目中开发遇到的,虽然解决了问题,但是不明白怎么回事。

这也不用贴代码吧,已经说的很清楚了,如你所说,相关代码也只有五六行而已。

[解决办法]
QTimer
一般情况下 start() 后就开始计时,定时时间到时会发出信号,发信号前后该定时器项在定时器队列中会调整下但不移除,直到 stop() 才会将该定时器项从定时器队列中摘除
可用 qt creator 跟踪看下

onshot 标志设置后,之后的定时到时后,会自动调用 stop() 类似动作

热点排行