3

应用程序调用时QTimer::start()是立即启动还是在当前事件处理后启动?换句话说,如果在其timeout()插槽中长时间处理,我应该使用带时间校正的单次计时器吗?

4

1 回答 1

2

要确定地回答,需要检查 Qt 中特定于平台的代码。这是一个好兆头,表明这不是您应该依赖的东西。此外,QTimer在准确性方面并没有太多承诺:

计时器永远不会早于指定的超时值超时,并且不能保证它们在指定的确切值时超时。在许多情况下,它们可能会延迟一段时间,具体取决于系统计时器的准确性。

计时器的准确性取决于底层操作系统和硬件。大多数平台支持 1 毫秒的分辨率,尽管在许多实际情况下计时器的精度不会等于该分辨率。

如果 Qt 无法提供请求的计时器点击次数,它会默默地丢弃一些。

如果您需要准确知道超时信号之间经过了多长时间,请将 yourQTimerQElapsedTimer.

于 2013-11-05T07:38:47.773 回答