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

Qt Discussion :

methode qui fais une pause


Sujet :

Qt

  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 42
    Par défaut methode qui fais une pause
    salut
    j'ai une fonction qui deplace des disques d'un axe vers l'autre
    elle a marche mais sans voir les deplacement
    donc j'ai besoin d'une methode qui fait "pause" apres chaque deplacement (comme sleep à l'unix)
    merci

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Bonjour.
    Pas trés claire ton expliquation...
    De ce que j'ai compris, il te faudrait un QTimer qui à temps régulier va redessiner tes disques.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 42
    Par défaut
    je programme avec c++ /QT
    voici le code :

    hanoi(n-1,axe1,axe3,axe2);
    ***************
    deplacer(axe1,axe2);

    je veux faire une pause de (quelques milliseconde) à la place de *********

  4. #4
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    salut,

    Qt est un framework basé sur une boucle d'événements. Comme tout framework qui suit ce paradigme, les fonctions qui sont appelées doivent retourner en un minimum de temps, et en aucun cas faire des 'sleep'. Sinon, c'est toute ton interface qui 'gèlera' et deviendra inutilisable.

    La solution: utiliser comme le propose MonGaulois un QTimer. Cette classe permet d'appeler à intervalles réguliers un slot qu'on lui connecte et qui va effectuer 'une étape' de ton animation (genre incrémenter x, y et redessiner le'sprite').

    Je te renvoie à la doc de QTimer pour voir comment ça s'utilise.

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 42
    Par défaut
    j'ai fais:
    QTimer::singleShot(200, this, SLOT(updateCaption()));
    mais ça marche pas !!!

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par houcem001 Voir le message
    j'ai fais:
    QTimer::singleShot(200, this, SLOT(updateCaption()));
    mais ça marche pas !!!
    singleShot ne fait qu'un signal. C'est son seul interet.
    IL faut un QTimer, + start avec le temps + un connect sur timeout()
    http://qt.developpez.com/doc/4.4/qtimer/#start
    http://qt.developpez.com/doc/4.4/qtimer/#timeout

  7. #7
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 42
    Par défaut
    j'ai essayer avec

    {hanoi(n-1,axe1,axe3,axe2);
    QThread::msleep ( 1000);
    deplacer(axe1,axe2);
    hanoi(n-1,axe3,axe2,axe1);
    }

    mais il m'ecrit au niveau du compilation " 'static void QThread::msleep<long unsigned int>' is protected".

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    que ne comprend tu pas dans ma reponse?

Discussions similaires

  1. Methode qui retourne une liste de DateTime
    Par justine68 dans le forum C#
    Réponses: 2
    Dernier message: 06/07/2009, 15h52
  2. Select qui fais une boucle infinie
    Par MaitrePylos dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 28/03/2006, 17h29
  3. methode qui retourne une liste d'objets du meme type
    Par anoukhan dans le forum Oracle
    Réponses: 8
    Dernier message: 12/01/2006, 18h38
  4. methode qui calcul une moyenne du traffic
    Par siry dans le forum Développement
    Réponses: 7
    Dernier message: 05/05/2005, 17h16
  5. [Thread] comment arreter un thread qui execute une methode b
    Par Cyber@l dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 04/08/2004, 10h51

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