Question

Je développe un métronome QML.J'ai utilisé une minuterie avec intervalle 60000 / battements par minute.Cependant, ce n'est pas vraiment précis.Comment puis-je améliorer la précision?Devrais-je utiliser une minuterie ou y a-t-il une meilleure solution?

Était-ce utile?

La solution

Le problème fondamental avec QTIMER qu'il utilise la boucle d'événement QT pour le moment chronométrage.Malheureusement, il ne peut pas être suffisamment précis, intrinsèquement.La latence des notifications et tout ce que dans la boucle d'événement se met à la hauteur.

Vous auriez besoin d'envisager une minuterie qui ne dépend pas fortement de la boucle d'événement QT, comme QueryPerformanceCounter() sur Windows.C'est ainsi que nous arrivons au domaine de QLapsedTimer.

Ainsi, j'utiliserais qelapsedTimer à cet effet.

Le message suivant dispose d'une classe personnalisée mise en œuvre à cet effet tel qu'il semble.Vous pourrez peut-être le prendre tel quel, puis le modifier pour répondre à votre besoin encore mieux si nécessaire.

Minuterie haute résolution

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top