QML 计时器 - 如何提高准确性?

use*_*990 5 c++ qt qml qtcore qelapsedtimer

我正在开发 QML 节拍器。我使用了一个间隔为 60000/Beats 每分钟的计时器。然而,它并不准确。我怎样才能提高准确性。我应该使用计时器,还是有更好的解决方案?

lpa*_*app 5

根本问题 QTimer是它使用 Qt 事件循环进行计时。不幸的是,它本质上不够准确。通知的延迟以及事件循环中的所有内容正在妨碍。

您需要考虑一个实际上并不高度依赖 Qt 事件循环的计时器,例如QueryPerformanceCounter()在 Windows 上。这就是我们如何进入QElapsedTimer.

因此,我会为此使用QElapsedTimer

下面的帖子似乎为此目的实现了一个自定义类。您可以按原样接受它,然后在需要时对其进行调整以更好地满足您的需要。

高分辨率定时器