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 :

Signaux et QMainWindow


Sujet :

Qt

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 33
    Points : 26
    Points
    26
    Par défaut Signaux et QMainWindow
    Bonjour à tous,

    J'ai une application qui crée un thread d'acquisition video. Dans ce thread, j'envoie une signal à un thread "socket" avec un message pour l'envoyer sur un client distant. Ce thread socket possède son propre event loop.

    Pourtant lorsque je clique sur mon GUI (QMainWindow), pour le déplacer, le redimensionner ou autre, les messages envoyées depuis de thread d'acquisition video ne sont plus traités jusqu'à ce que je j'aie fini mes opérations de redimensionnement ou déplacement... Est.ce normal? Si oui, comment faire pour que ces messages soient traités quand même?

    Merci d'avance pour toute aide ou info sur le sujet!

    ++

    F.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par trop_wizz Voir le message
    Pourtant lorsque je clique sur mon GUI (QMainWindow), pour le déplacer, le redimensionner ou autre, les messages envoyées depuis de thread d'acquisition video ne sont plus traités jusqu'à ce que je j'aie fini mes opérations de redimensionnement ou déplacement... Est.ce normal? Si oui, comment faire pour que ces messages soient traités quand même?
    si les traitement de redimensionnement et autres sont dans le thread principale oui car il bloque l'eventloop. Vue que c'est du traitement d'image, à part un autre thread, je ne voie pas trop...
    A la limite, regarde cette QR :
    http://qt.developpez.com/faq/?page=qt4Gui#de-geler-ihm
    mais je ne pense pas que ce soit la meilleur solution pour toi.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    En effet,
    A QObject instance is said to live in the thread in which it is created. Events to that object are dispatched by that thread's event loop.
    mon thead socket executait son slot de transmission de message via l'event loop du GUI. En utilisant moveToThread() le problème était résolu

    ++

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

Discussions similaires

  1. Signaux CTS et RTS sur dialogue port COM
    Par chourmo dans le forum Composants VCL
    Réponses: 8
    Dernier message: 22/06/2005, 11h45
  2. [signaux] contrôler une apply python
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 1
    Dernier message: 22/03/2005, 15h06
  3. [Amstrad] Signaux à gérer port E/S pour lire ROM
    Par Masterglob dans le forum Autres architectures
    Réponses: 7
    Dernier message: 12/01/2005, 12h03
  4. [INFO]Signaux Linux et Java
    Par el3gans dans le forum Général Java
    Réponses: 5
    Dernier message: 26/11/2004, 00h17
  5. [C#] Gérer les signaux genre ctrl+c?
    Par BleudeBromothymol dans le forum Windows Forms
    Réponses: 8
    Dernier message: 17/11/2004, 15h32

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