繁体   English   中英

调用stop()后是否会发送QTimer超时信号?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM