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 :

[EventLoop] Comment "vider" la file des évènements ?


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de sylvain1984
    Homme Profil pro
    Retraité, développeur amateur
    Inscrit en
    Juillet 2023
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité, développeur amateur

    Informations forums :
    Inscription : Juillet 2023
    Messages : 68
    Par défaut [EventLoop] Comment "vider" la file des évènements ?
    Bonjour,

    J'ai un soucis avec les transitions d'une QScxmlStateMachine.

    J'ai deux petites machines d'états dans mon soft. Je me suis aperçu que le changement d'état de ma seconde machine d'états sm via l'activation d'une transition (sm.submitEvent("la_transition")) n'est pas immédiat.
    D'après ce que j'ai constaté, les évènements d'une QScxmlStateMachine sont traités en derniers, juste avant de rendre la main à l'utilisateur. Or j'ai besoin de connaître l'état actif de sm avant...

    Je traite l'affaire en appelant juste après submitEvent() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
    Mais la doc Qt déconseille cette méthode.

    Comment faire alors ???
    J'ai pensé à récupérer un handler vers la QEventLoop de la QApplication, mais rien ne semble prévu pour ça.

  2. #2
    Membre éclairé
    Avatar de sylvain1984
    Homme Profil pro
    Retraité, développeur amateur
    Inscrit en
    Juillet 2023
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité, développeur amateur

    Informations forums :
    Inscription : Juillet 2023
    Messages : 68
    Par défaut
    ... bon je vois que le sujet n'attire pas les foules...

    Depuis le temps j'ai pensé à une autre solution potentielle :
    - créer une nouvelle boucle d'évènements dans celle de l'IHM ;
    - "raccrocher" les évènements des QScxmlStateMachine à cette nouvelle boucle d'évènements.

    Si le premier point est assez simple, je ne sais pas encore comment assurer le second. Ce serait possible ?

    Sylvain

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