Bonjour à tous,
Je dois réaliser un petit programme sous Qt qui doit (entre autre) gérer des temps.
Je souhaiterais savoir quel moyen de calculer des temps me conseillez vous en terme de précision entre QTimerEvent et QTime.
Voici un bout de code de ma manière de tester:
Après des tests, j'aurais envie de dire QTime, mais on m'a dis que QTimerEvent était très précis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 QTime varQTime ; int monTimer = startTimer(5); int tempsTimerEvent = 0; int tempsQTime = 0 ; varQTime.start(); [...] void maClass::timerEvent(QTimerEvent* event){ if(event->timerId() == monTimer){ tempsTimerEvent += 5; //gestion du temps par QTimerEvent tempsQTime = varQTime.elapsed() ; //gestion du temps par QTime } }
Ou alors y'a t'il un autre moyen plus précis à privilégier?
Merci d'avance pour vos réponses!
[EDIT:]
Il y a des disparités énormes entre les deux méthodes!!
Voici un jeu de tests:
Première colonne: QTimerEvent
Deuxième méthode: QTime
Troisième colonne: Différence entre les deux
je ne comprend pas trop comment la méthode avec QTime peux retourner la même valeur sur plusieurs cycles d'affilés..."5" ; "16" ; "11"
"10" ; "16" ; "6"
"15" ; "16" ; "1"
"20" ; "16" ; "-4"
"25" ; "32" ; "7"
"30" ; "32" ; "2"
"35" ; "48" ; "13"
"40" ; "48" ; "8"
"45" ; "48" ; "3"
"50" ; "64" ; "14"
"55" ; "64" ; "9"
"60" ; "64" ; "4"
"65" ; "80" ; "15"
"70" ; "80" ; "10"
"75" ; "80" ; "5"
[...]
"400" ; "433" ; "33"
"405" ; "433" ; "28"
"410" ; "449" ; "39"
"415" ; "449" ; "34"
"420" ; "449" ; "29"
"425" ; "449" ; "24"
"430" ; "465" ; "35"
"435" ; "465" ; "30"
"440" ; "465" ; "25"
"445" ; "481" ; "36"
"450" ; "481" ; "31"
[...]
"3540" ; "4186" ; "646"
"3545" ; "4186" ; "641"
"3550" ; "4186" ; "636"
"3555" ; "4202" ; "647"
"3560" ; "4202" ; "642"
"3565" ; "4218" ; "653"
"3570" ; "4218" ; "648"
Partager