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

wxPython Discussion :

Ouverture d'un dialog modal dans un thread


Sujet :

wxPython

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
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 28
    Par défaut Ouverture d'un dialog modal dans un thread
    Bonjour à tous.

    Mon problème est le suivant : J'ai une interface graphique qui marche, et dans l'application je crée un thread qui tourne pendant un petit moment.

    Dans ce thread, j'appelais deux MessageDialog successivement, et cela marchait, le thread se mettait tout seul en pause le temps que le ShowModal() se termine.

    J'ai voulu passer de ces deux MessageDialog à un seul Dialog, que j'ai codé en héritant de la classe wx.Dialog.

    mon affichage en modal marche sans problème quand j'appelle uniquement cette fenêtre modale, mais lorsque je l'appelle dans mon programme depuis le thread, j'ai ce problème là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    " File "C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_windows.py", line 711, in ShowModal
        return _windows_.Dialog_ShowModal(*args, **kwargs)
    PyAssertionError: C++ assertion "IsRunning()" failed at ..\..\src\msw\evtloop.cpp(222) in wxEventLoop::Dispatch(): can't call Dispatch() if not running"
    Ce que je ne comprend pas, c'est pourquoi ça marche avec des MessageDialog, qui descend de wx.Dialog, mais pas avec une fenêtre dérivant de wx.Dialog que j'ai coder moi même.

    Dans les deux cas, j'appelle la fonction ShowModal(), les créations des dialog se font au même endroit, et leur appel en modal idem.

    Je suis à court d'idée, please, help!

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 28
    Par défaut
    Personne n'a une idée ou n'aurait déjà eu ce problème auparavant svp? ^^

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Par défaut
    Il me semble bien avoir eu le même message dans le passé. Il s'agit d'un problème entre le Mainloop de wxpython et le thread. Il faut regarder du coté de wx.CallAfter, ou créer un évènement personnalisé à utiliser avec wx.PostEvent.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Par défaut
    Ca tombe bien. J'allais justement poser une question identique sauf que dans ma situation, je cherche à lancer une frame à partir d'un thread.

    J'ai déjà essayé avec wx.CallAfter, mais sans succès...

    Nyko77, pourrais-tu nous indiquer comment utiliser wx.PostEvent ? parce que là je coince...

    Merci !

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Par défaut
    Serait-il possible de poster ton code, même si ça fonctionne pas.

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 28
    Par défaut
    Bon, j'ai du nouveau, en fait, ça marche donc bien avec MessageDialog, mais avec aucune autre fenetre modale, comme par exemple SingleChoiceDialog.

    Je ne comprend plus rien là... Si vous avez une idée, n'hésitez pas! ^^

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

Discussions similaires

  1. C# affichage DIALOG BOX dans un Thread
    Par juniorAl dans le forum C#
    Réponses: 0
    Dernier message: 10/11/2010, 16h12
  2. Probleme de dessin dans un dialog modal
    Par Charlock dans le forum MFC
    Réponses: 1
    Dernier message: 07/05/2008, 11h58
  3. Ouverture d'une fenêtre non modale dans un Thread
    Par Cyrill26 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/02/2008, 17h30
  4. [C#] Comment appeler une fenêtre modale dans un autre thread ?
    Par Pilloutou dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/10/2006, 11h19
  5. [MFC] Créer une CDialog non modale dans un thread
    Par fleur_de_rose dans le forum MFC
    Réponses: 3
    Dernier message: 29/09/2006, 11h43

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