2014-01-11 3 views
4

Я разрабатываю метроном QML. Я использовал таймер с интервалом 60000/ударов в минуту. Однако это не очень точно. Как повысить точность. Должен ли я использовать таймер или есть лучшее решение?QML Timer - Как повысить точность?

ответ

3

Основная проблема с QTimer заключается в том, что он использует цикл событий Qt для синхронизации. К сожалению, он не может быть достаточно точным, по сути. Задержка для уведомлений и все, что в цикле событий мешает.

Вам нужно будет рассмотреть таймер, который на самом деле не сильно зависит от цикла событий Qt, например QueryPerformanceCounter() на Windows. Так мы добираемся до области QElapsedTimer.

Таким образом, для этой цели я бы использовал QElapsedTimer.

Следующий пост имеет пользовательский класс, реализованный для этой цели, как кажется. Вы можете взять его как есть, а затем настроить его в соответствии с вашими потребностями еще лучше, если это необходимо.

High Resolution Timer

Смежные вопросы