[英]Will QTimer timeout signal be sent after stop() is called?
我现在正在研究Qt 5.5 / 4.8。 我担心在通过调用该实例上的stop()
显式停止定时器后是否(偶尔)发送timeout()
信号?
我希望timeout()
信号将在start()
和stop()
之间发送,但这是真的吗?
我的情况是: start()
和stop()
都在主线程中调用,而timeout()
信号作为直接连接连接。 (我知道排队连接不能保证上面的说法。)
快速回答: 不 ,在大多数情况下不会调用它,但至少有一个例外。
可能被调用的情况是您使用了排队连接 。 例如,如果在停止计时器之前恰好发出QTimer::timeout
信号,则可以在停止后获取相关的插槽。
在上面的情况下,插槽排队(但不一定被调用),因此在实际调用插槽之前调用QTimer::stop
可能会发生这种情况。
如果你使用排队连接,你可以在插槽的开头检查QTimer::isActive()
(你当然需要一些方法来访问计时器,也许是作为类的成员)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.