Pergunta

Estou desenvolvendo um metrônomo QML.Usei um timer com intervalo de 60.000/batidas por minuto.No entanto, não é realmente preciso.Como posso melhorar a precisão.Devo usar um temporizador ou existe uma solução melhor?

Foi útil?

Solução

A questão fundamental do QTimer é que ele usa o loop de eventos Qt para o tempo.Infelizmente, não pode ser preciso o suficiente, inerentemente.A latência para notificações e tudo isso dentro do loop de eventos está atrapalhando.

Você precisaria considerar um cronômetro que não dependa muito do loop de eventos do Qt, como QueryPerformanceCounter() no Windows.É assim que chegamos ao domínio do QElapsedTimer.

Assim, eu usaria QElapsedTimer para este propósito.

A postagem a seguir tem uma classe customizada implementada para essa finalidade, como parece.Você pode aceitá-lo como está e ajustá-lo ainda melhor para atender às suas necessidades, se necessário.

Temporizador de alta resolução

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top