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 :

Crash avec delayed result sous Linux


Sujet :

wxPython

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Par défaut Crash avec delayed result sous Linux
    Bonsoir à tous,
    je suis en train de porter une application qui tourne très bien sous Windows vers Linux mais je dois faire face à des bugs très bizarres :
    J'utilise delayed results pour garder une GUI "active" pendant une longue opération, mais le thread a besoin de modifier l'interface pendant les opérations (gestions des gauges, actualisation d'un statictext, écriture du log,...)
    Mais il arrive qui cette méthode fasse crasher la GUI (le thread de fond contune de tourner mais le programme reste gelé même une fois celui ci terminé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def setCurTask(self, *args):
            """ Updates the current task text with provided strings (2 required).
            """
            try:
                #self.opCurTask est un StaticText
                self.opCurTask.SetLabel(self.inst["loc"](2030)%args)
                self.opSizer.Layout()
            except:
                debug()
    Plus grave, l'affichage de dialogs (sans parent) appelés par le thread de fond fait carrément planter le programme :
    python: ../../src/xcb_lock.c :33 : _XCBUnlockDisplay: L'assertion « xcb_get_request_sent(dpy->xcb->connection) == dpy->request » a échoué.
    Après une petite recherche, ce problème viendrait plus de X11 que de Wx ou Python.

    Je me doute bien que ces actions ne sont pas vraiment à recommander , mais dans ce cas comment intéragir de façon fiable avec l'utilisateur pendant qu'un thread est en train de tourner ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Par défaut
    Est ce que tu as essayé d'encapsuler ces appels dans un wx.CallAfter?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Par défaut
    Merci, c'était ça (je ne connaissais pas cette fonction!)

    Mais comment faire lorsqu'on veut récupérer le résultat ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Par défaut
    C'est bon j'ai fini par trouver une solution avec CallLater :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def safeYesNoBox(title, message):
        box = wx.CallLater(0,yesNoBox,title, message)
        while not box.HasRun():
            wx.MilliSleep(50)
        return box.GetResult()
    (hier le site de WxPython était down donc j'ai pas pu trop chercher)

    Merci encore

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 20/08/2007, 00h55
  2. [TomcaT]Config une appli J2EE avec tomcat/apache sous linux
    Par kameha dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 31/03/2006, 15h05
  3. Routeur WIFI compatible avec Chello et sous Linux
    Par Premium dans le forum Réseau
    Réponses: 2
    Dernier message: 20/02/2006, 16h32
  4. Problème avec ifconfig, ping... sous linux
    Par boubouc dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 12/02/2006, 16h15
  5. Réponses: 14
    Dernier message: 09/08/2004, 13h42

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