【发布时间】:2014-01-11 18:11:02
【问题描述】:
我正在开发 QML 节拍器。我使用了一个间隔为 60000/Beats 每分钟的计时器。然而,它并不准确。我怎样才能提高准确性。我应该使用计时器,还是有更好的解决方案?
【问题讨论】:
标签: c++ qt qml qtcore qelapsedtimer
我正在开发 QML 节拍器。我使用了一个间隔为 60000/Beats 每分钟的计时器。然而,它并不准确。我怎样才能提高准确性。我应该使用计时器,还是有更好的解决方案?
【问题讨论】:
标签: c++ qt qml qtcore qelapsedtimer
QTimer 的基本问题是它使用 Qt 事件循环进行计时。不幸的是,它天生就不够准确。通知的延迟以及事件循环中的所有内容都在阻碍。
您需要考虑一个实际上并不高度依赖 Qt 事件循环的计时器,例如 Windows 上的 QueryPerformanceCounter()。这就是我们到达QElapsedTimer 领域的方式。
因此,我将为此使用QElapsedTimer。
下面的帖子似乎为此目的实现了一个自定义类。您可以按原样使用它,然后根据需要对其进行调整以更好地满足您的需求。
【讨论】: