Я разрабатываю метроном QML. Я использовал таймер с интервалом 60000 / ударов в минуту. Однако это не совсем точно. Как я могу улучшить точность. Должен ли я использовать таймер, или есть лучшее решение?
Основная проблема с QTimer в том, что он использует цикл событий Qt для синхронизации. К сожалению, это не может быть достаточно точным, по своей сути. Задержка для уведомлений и всего, что в цикле событий, мешает.
Вам нужно будет рассмотреть таймер, который на самом деле не сильно зависит от цикла событий Qt, например QueryPerformanceCounter()
на винде. Вот как мы попадаем в сферу QElapsedTimer.
Тем самым я бы использовал QElapsedTimer для этого.
В следующем посте для этой цели реализован пользовательский класс. Вы можете принять его как есть, а затем настроить его, чтобы удовлетворить ваши потребности еще лучше, если это необходимо.
Других решений пока нет …