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

Multithreading Discussion :

[Thread] Synchronisation d'un QThread avec l'IHM


Sujet :

Multithreading

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Points : 210
    Points
    210
    Par défaut [Thread] Synchronisation d'un QThread avec l'IHM
    Bonjour à tous,

    je voulais savoir comment synchroniser un QThread avec l'IHM.
    j'ai un thread qui tourne en permance et qui récupère des données que je dois afficher dans un edit d'une fenetre.

    Ca fonctionne un petit moment et apres ca plante normale vue que je n'ai pas de synchro ... sous C++ builder il y a une fonction Synchronize(&fonction);.
    Mais avec Qt que dois-je utiliser

    Merci
    mcercle facturation - Logiciel de facturation Win/Mac/Linux

  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
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Qu'entends-tu exactement par synchroniser stp? Je ne connais pas C++B (ça remonte à trop loin, et je n'avais pas touché à ça à l'époque )

  3. #3
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Si j'ai bien interprété le sens de la synchronisation, je pense qu'il faut que tu communiques entre tes deux threads par les signals/slots. Inspire toi de l'exemple sur Mandelbrot.

  4. #4
    Membre actif Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Points : 210
    Points
    210
    Par défaut
    oula oui en effet c'est un peu plus compliqué !

    Donc ils y apparement plusieurs notions :
    -Qmutex
    -QWaitCondition
    -Signal et SLOT

    Il faut faire apparement la connexion avec ces derniers (qui ont apparement les mêmes paramêtres) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    connect(&thread, SIGNAL(renderedImage(const QImage &, double)),
                 this, SLOT(updatePixmap(const QImage &, double)));
    mais j'ai un peu de mal à comprendre comment fonctionne le tout...
    mcercle facturation - Logiciel de facturation Win/Mac/Linux

  5. #5
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Si tu veux comprendre les signaux et slots regarde ce tutoriel sinon il y a aussi une page dans la doc Qt.

  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
    Points : 3 266
    Points
    3 266
    Par défaut
    Attention, j'ai vu que cfdev avait posté le lien vers la doc de Qt3.3. Si tu utilises cette version (en fait toutes celles <Qt4), la seule méthode de communication est par événement.
    Bien sûr, il est toujours possible d'accèder aux données du thread, par des accesseurs utilisant des mutex pour protéger d'éventuelles corruptions.

  7. #7
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Désolé j'avais pas vu, donc la doc sur le sujet en Qt 3 est plutôt celle là.

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

Discussions similaires

  1. Thread Synchronisation avec structure FIFO ??
    Par vincedom dans le forum MFC
    Réponses: 5
    Dernier message: 30/03/2006, 06h00
  2. service NT avec interface (IHM)
    Par cash3000 dans le forum Windows
    Réponses: 14
    Dernier message: 06/06/2005, 09h23
  3. Réponses: 1
    Dernier message: 23/05/2005, 15h52
  4. [Thread] synchronisation globale
    Par guejo dans le forum Concurrence et multi-thread
    Réponses: 6
    Dernier message: 16/02/2005, 11h56
  5. [Thread][Synchronisation] Exclusion mutuelle
    Par masto dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 20/01/2005, 16h02

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