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 :

QTextEdit: mis à jour imméditat


Sujet :

Qt

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut QTextEdit: mis à jour imméditat
    Salut,

    Dans mon application j'utilise un QTextEdit comme console. Dejà je ne suis pas sure si c'est le bon choix.

    Le problème est que les message que j'envoie à mon console en utilisant QTextEdit::append("texte") n'apparaissent que lorsque le processeur à tous fini.

    Est ce qu'il y a un moyen pour faire un update immédiat à chaque envoie de message ?

    Sinon est ce que vous me conseillez autre chose qu'un QTextEdit comme console ?

    Merci

  2. #2
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    Même problème que celui-ci

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    Salut,

    Même problème que celui-ci
    Merci IrmatDen ! (Intéressant le lien)

    Ca résoud mon problème en utilisant QCoreApplication::processEvents() mais ca m'amène à poser une question:

    Si je veux ajouter un timer à mon interface qui montre l'écoulement du temps depuis le début de mon Run, faut que je passe par les threads ?

    Merci

  4. #4
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Non, pas besoin. Tu as juste à récupérer l'heure et faire une différence avec l'heure en début de tâche.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut
    Desolé j'ai pas été clair.

    Je parle d'un chronomètre visible dans l'interface graphique et qui se met à jour à toute les secondes.

  6. #6
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    C'est la même chose avec un QTimer en plus, donc non toujours pas besoin de threads

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut
    ok !
    Mais ceci ne ralentirai pas mon programme vue que à chaque seconde mon programme sera interrompu pour mettre à jour mon chronomètre ?

  8. #8
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Bien moins que de mal utiliser processEvents

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut
    Dac merci

    (je vais aussi tester pour voir la différence de temps que ca donne)

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    Bien moins que de mal utiliser processEvents
    Finalement ca reviens au même puisque je dois faire mon processEvents à chaque seconde pour mettre à jour l'horloge dans l'interface

  11. #11
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    processEvents toutes les secondes, c'est très très peu. Essaie de déplacer ta fenêtre pour t'en rendre compte, ou d'en faire passer une devant.

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut
    Le pire c'est que ma slot n'est appellée que une fois l'algorithme terminé.

    Mon programme utilise la GA lib pour appliquer un certain algorithme.

    Je résume ce que je fais.

    1- Je connecte mon QTimer à ma SLOT dans le constructeur de ma classe.
    2- Quand l'utilisateur appuie sur "Démarrer":
    2.1 Je pars mon timer avec un timeout de 1000 ms
    2.2 Je pars l'algorithme génetique
    2.3 Je stop mon timer à la fin

    Dans ce cas ci, mon SLOT n'est jamais appellé, parce que le signal timeout n'a jamais été émis que pendant l'exécution de l'algorithme.
    Si j'enlève mon timer.stop() à la fin, le chronomètre se met bien à jour mais uniquement une fois l'algorithme terminé.

    Donc le problème ici est du au fait que ma slot n'est pas appellé pendant l'éxecution d'autre tâche, ce que je trouve un peu bizarre !

    T'as une idée de qu'est ce qui se passe ?

  13. #13
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    QTimer s'appuie sur les événements, et donc sur la réactivité de la gestion des événements dans ton appli. Sans threader la tâche lourde ou sans appeler processEvents réguliérement, son signal n'est pas émis.

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Par défaut
    Je vois !

    Merci pour tous ces réponses IrmatDen

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] erreur php sur un formulaire de mis à jour
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 34
    Dernier message: 06/04/2006, 13h39
  2. Connaitre Nbre Enregistrements Mis à Jour
    Par Daniel MOREAU dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2006, 11h08
  3. récupérer les champs mis à jour
    Par xave dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 06/10/2005, 14h40
  4. pboblème de mis à jour dans une table
    Par koff10 dans le forum Bases de données
    Réponses: 4
    Dernier message: 31/07/2005, 01h17

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