IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Précision de la gestion de temps entre QTimerEvent et QTime

  1. #1
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut Précision de la gestion de temps entre QTimerEvent et QTime
    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:
    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 
        }
    }
    Après des tests, j'aurais envie de dire QTime, mais on m'a dis que QTimerEvent était très précis.
    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
    "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"
    je ne comprend pas trop comment la méthode avec QTime peux retourner la même valeur sur plusieurs cycles d'affilés...
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Pour en être sur, il faut vérifier la documentation et le code. Je crois que QTime ne se base que sur les cycle de la boucle événementielle alors que QTimerEvent se base sur la machine (ou l'OS) et donc retourne un résultat plus précis.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Merci pour votre réponse. Je vais essayer de regarder...
    Sinon, est ce que GetTickCount est utilisable sous Qt?
    En sachant que mon programme n'est destiné qu'a Windows...
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 594
    Points
    188 594
    Par défaut
    Citation Envoyé par sat83 Voir le message
    Sinon, est ce que GetTickCount est utilisable sous Qt?
    C'est probablement cette fonction que Qt utilise en interne . Pour peu que tu l'appelles correctement (en ce inclus inclusion des fichiers d'en-têtes et des fichiers d'import de bibliothèque), ça ne posera aucun problème.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

Discussions similaires

  1. Gestion du temps entre deux commandes
    Par Mustaal dans le forum Programmation et administration système
    Réponses: 12
    Dernier message: 14/06/2013, 09h25
  2. Réponses: 4
    Dernier message: 14/12/2004, 17h37
  3. [Forms] : Gestion de Navigation entre module
    Par patmaba dans le forum Forms
    Réponses: 12
    Dernier message: 09/04/2004, 14h09
  4. fonction de gestion du temps
    Par fati dans le forum C
    Réponses: 5
    Dernier message: 26/12/2002, 16h32
  5. Réponses: 4
    Dernier message: 04/07/2002, 12h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo