Partage
  • Partager sur Facebook
  • Partager sur Twitter

Threads et GTK+

    10 mars 2011 à 21:38:02

    Bonjour,

    Voilà dans le cadre de mon stage j'ai une application bureau en développement.
    Une application me permettant de parser entre autre du XLS en XML.
    J'aimerais pouvoir pendant mon parsing afficher une progressBar se mettant à jour en fonction du nombre de lignes traitées.

    Pour l'instant j'ai mon application qui est freezé pendant que j'effectue le parsage avec notamment l'utilisation de :

    gobject.idle_add(parserCallBack, self.XXXXX.window) dans la fonction déclenchée par le click du bouton pour lancer le parsing.
    où parserCallBackcontient ma fonction de parsing self.parser()

    Merci d'avance pour l'aide, je m'y perds dans l'utilisation des threads avec GTK+ :/
    • Partager sur Facebook
    • Partager sur Twitter
      12 mars 2011 à 1:17:24

      Salut.

      J'aimerais pouvoir t'aider, et je suppose ne pas être le seul, néanmoins les infos que tu donnes sur ton code me semblent maigres. Je comprends bien que tu ne veuilles pas nécessairement que le code de ta boite se retrouve sur le site mais n'aurais-tu pas moyen de reproduire ne serait-ce que schématiquement ton programme, afin qu'on puisse avoir un peu plus une vue d'ensemble ?

      En l'état, il est difficile de se faire une idée...
      • Partager sur Facebook
      • Partager sur Twitter
      Zeste de Savoir, le site qui en a dans le citron !
        12 mars 2011 à 12:51:50

        D'accord merci beaucoup, alors voici le code.
        def on_valider_button_press_event(self,widget,data="None"): #lors du click pour lancer le parsage
        
        
            #callback de parsage
            def parserCallBack(gtk_window):
                    # appel de la fonction de ma fonction pour parser mon xls en xml
                    self.parser(self.type1,self.type2, self.type3,self.type4)
                    # mise à jour de ma statusBar
                    self.statusbar.push(2, "Parsage terminé")
                    
                    return False
        
            # mise à jour de ma Status bar
            self.statusbar.push(2, "Parsage en cours ..... ")
            # on appelle la fonction parser dans une callBack
            # Pendant ce temps, mon interface n'est plus accessible
        
            gobject.idle_add(parserCallBack, self.XXXXXXX.window)
        


        Je tiens à préciser que ce code n'est pas le mien, je l'ai récupéré tel quel, je ne suis pas un expert Python, plutôt JAVA, et donc quand je vois les threads en GTK+ je m'y perds ...
        Au lieu d'avoir ma fenêtre figée pendant le traitement (self.parser), j'aimerais pouvoir donner à l'utilisateur un avancement du nombre de lignes effectuées, donc via un thread.

        Encore merci d'avance pour l'aide ! :(
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          12 mars 2011 à 21:38:08

          Je te conseille de lire cette page où notamment tu verras l'utilisation de la méthode connect que je ne vois pas dans ton code.
          • Partager sur Facebook
          • Partager sur Twitter
            13 mars 2011 à 20:27:46

            Tu parles du .connect pour lier mon bouton à ma fonction on_valider_button_press_event ??

            Il y'est bien dans mon code(pas afficher ici vu que c'est n'est pas nécessaire, mon code fonction bien : click-action), je voudrais juste à la place d'avoir mon UI figée, intégré un thread pour donner un avancement de mon traitement à travers une progressBar par exemple .
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              13 mars 2011 à 20:36:07

              t'as un exemple ici
              • Partager sur Facebook
              • Partager sur Twitter
                13 mars 2011 à 21:26:51

                Ah merci beaucoup pour le lien, je vais regardé ça !
                • Partager sur Facebook
                • Partager sur Twitter

                Threads et GTK+

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown