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

C++ Discussion :

faire un temps d'arrêt à chaque itération d'une boucle


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 78
    Points : 46
    Points
    46
    Par défaut faire un temps d'arrêt à chaque itération d'une boucle
    bonjour,
    voici mon problème:
    je doit afficher un QGroupBox dans lequel il y a une QLine, et afficher dessus quelques QPushButton. Tout cela à chaque itération d'une boucle while. jusque là tout va bien, sauf que le nouvel affichage écrase l'ancien et je me retrouve à la fin avec le dernier affichage seulement (sachant que la position d'affichage reste la même). maintenant je voudrais qu'à chaque affichage le programme fasse un temps d'arrêt afin que je puisse visualiser un affichage avant qu'il soit remplacé par le prochain.
    j'ai utilisé pour cela l'instruction sleep(2), mais la pause a été faite au début avant tout affichage et pas à chaque itération.
    si quelqu'un a une idée, ça sera sympa qu'il me donne un coup de main.
    MERCI

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Je crois que sleep prend en paramètres des millisecondes.
    Sinon un debug breakpoint, ça n'irait pas ?

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    non non, c'est msleep() qui prend en paramètre les millisecondes.
    Sinon pour le debug breakpoint je sais pas, je croyais que c'était juste pour le débogage de programmes afin de déceler les erreurs éventuelles, je vois pas le lien avec mon programme, et si je me trompe veuillez me corriger l'erreur, mais je vais quand même essayer.

  4. #4
    Christianchristian
    Invité(e)
    Par défaut
    Bonjour,

    Il est toujours posible de rester au stade artisanal et de se faire une petite proc toute bête :


    void PROC_WAIT (unsigned int NB_ITERATIONS)
    {
    FOR (unsigned int k = 0; k < NB_ITERATIONS; k++) {continue;}
    return;
    }
    ............
    .............
    unsigned int nb_iterations = 67500000; //ordre de grandeur
    PROC_WAIT (nb_iterations);



    Cordialement,

  5. #5
    Membre confirmé
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Points : 563
    Points
    563
    Par défaut
    C'est quand même archi moche et ca n'ira pas à la même vitesse sur chaque architecture.
    Si tu as des problèmes avec sleep(), essayes timeGetTime(), avec un algo du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DWORD cur_time = timeGetTime( );
    while ( ... )
    {
       ...
       while ( timeGetTime()<(cur_time+5000) ); // 5 secondes
       cur_time = timeGetTime( );
    }

  6. #6
    Membre confirmé
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Points : 563
    Points
    563
    Par défaut
    J'ai oublié de préciser que c'est pas portable : Win32 only, et que tu ne rends jamais la main. Mais ta bibliothèque (Qt?) a surement des composants type Timer a disposition.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Points : 107
    Points
    107
    Par défaut
    Désolé, j'ai mal lu.

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    bonjour,
    la procédure de Christianchristian agit exactement comme l'instruction sleep() comme je l'ai expliqué dans le premier message.
    effectivement le timeGetTime() n'est pas disponible dans la bibliothèque QT (sous linux), j'essayerai de chercher l'équivalent.
    MERCI

  9. #9
    Christianchristian
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par amelA
    bonjour,
    la procédure de Christianchristian agit exactement comme l'instruction sleep() comme je l'ai expliqué dans le premier message.
    En effet, amelA, je viens de faire un test ça ne fonctionne pas, désolé !

    Cordialement,

Discussions similaires

  1. affichage a chaque itération d'une boucle
    Par moman dans le forum Débuter
    Réponses: 2
    Dernier message: 25/04/2012, 19h29
  2. [XL-2003] Faire un temps d'arrêt
    Par dlight dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/06/2010, 16h24
  3. Réponses: 6
    Dernier message: 27/05/2010, 10h48
  4. Comment sauter une itération dans une boucle ?
    Par Kaeguri dans le forum Fortran
    Réponses: 3
    Dernier message: 20/04/2007, 12h30
  5. Réponses: 23
    Dernier message: 29/07/2004, 00h52

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