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 :

Rafraîchissement d'interface pendant un slot


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut Rafraîchissement d'interface pendant un slot
    Bonjour,

    Je n'arrive pas à raffraichir une interface : j'ai une interface principale, qui lorsqu'on clique sur un bouton, déclenche un slot, qui modifie une valeur, et qui met à jour une QLineEdit de l'interface principale. Sauf que lorsque j'exécute mon code, la mise à jour ne se fait que pour la dernière valeur (donc à la fin du slot). Y a t il une commande à ajouter pour que l'interface principale qui provoque le slot soit actualisée au fur et à mesure ?

    Merci d'avance pour votre réponse.

  2. #2
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 65
    Par défaut
    Tu peux utiliser update() sur ta fenêtre pour la rafraîchir.

    Si ça ne marche pas, utilise qApp->processEvents() pour forcer l'évaluation des évènements.

    Il faut savoir aussi qu'une fonction qui met à jour une interface régulièrement est plus lente qu'une fonction agissant masquée.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut
    Merci pour la réponse.

    J'ai essayé les 2 solutions mais pour l'instant pas de résultat. Je suis dans une boucle, et tant qu'on ne sort pas de la boucle, aucune mise à jour de l'interface ne s'effectue. Peut-être y a t il une instruction pour rendre la main pendant un petit laps de temps ?

  4. #4
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Sinon tu peux aussi créer un thread qui contient ta boucle. De plus tu relies ce thread avec un slot dans ton IHM qui met a jour ton Control.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut
    Désolé, en fait, qApp->processEvents() placé au bon endroit fonctionne (mais pas update()). Donc pas besoin d'ajouter un thread.
    Merci à tous.

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

Discussions similaires

  1. Interface figée pendant un QThread
    Par nsarras dans le forum Multithreading
    Réponses: 10
    Dernier message: 11/05/2011, 18h04
  2. Rafraîchissement de l'interface.
    Par gerald3d dans le forum GTK+ avec C & C++
    Réponses: 17
    Dernier message: 03/09/2009, 16h57
  3. Réponses: 1
    Dernier message: 19/03/2009, 13h59
  4. Réponses: 1
    Dernier message: 22/04/2008, 01h31
  5. Rendre une interface inactive pendant l'exécution d'un programme
    Par ploukinet dans le forum Interfaces Graphiques
    Réponses: 7
    Dernier message: 21/05/2007, 16h25

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