Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de fenêtre avec wxpython

    12 novembre 2010 à 14:04:32

    Bonjour tous le monde!

    J'ai un problème pour crée un fenêtre avec wxpython et python 2.7.
    La fenêtre de s'affiche pas!
    Voici mon code :
    # !/usr/bin/python
    # -*- coding: iso-8859-15 -*-
    
    import wx
    
    class Fenetre(wx.Frame):
        def __init__(self, titre):
            wx.Frame.__init__(self, None, -1, title = titre, size = (200, 100))
            conteneur = wx.Panel(self, -1, size = self.GetClientSize())
            etiquette = wx.StaticText(conteneur, -1, "Bonjour à tous les euro !", style = wx.ALIGN_CENTRE)
            etiquette.CentreOnParent()
    
    class MonApp(wx.App):
        def OnInit(self):
            fen = Fenetre("Exemple 1")
            fen.Show(True)
            self.SetTropWindow(fen)
            return True
    
    app = MonApp()
    app.MainLoop()
    

    Je ne comprend pas pourquoi ça ne fonction pas!
    Si quelqu'un peut m'aidé merci d'avance!
    • Partager sur Facebook
    • Partager sur Twitter
      12 novembre 2010 à 14:11:26

      Bonjour,
      C'est une erreur de frappe.
      remplace self.SetTropWindow(fen) par self.SetTopWindow(fen).





      • Partager sur Facebook
      • Partager sur Twitter
        12 novembre 2010 à 14:36:28

        Ca marche toujours pas! il y a peut-être une autre erreur! Non?
        • Partager sur Facebook
        • Partager sur Twitter
          12 novembre 2010 à 14:54:28

          Ba chez moi, ça marche, mais je suis avec python 2.6.
          Quelle est le message d'erreur?
          • Partager sur Facebook
          • Partager sur Twitter
            12 novembre 2010 à 15:02:46

            j'ai pas de message d'erreur! bizard!

            J'ai juste la fenêtre "wxPython: stdout/stderr" qui s'ouvre ave le message suivant :
            "Traceback(most recent call last)"
            • Partager sur Facebook
            • Partager sur Twitter
              12 novembre 2010 à 15:12:07

              En effet ce n'est pas très explicite. Tu es sûr que c'est le message complet?
              Sinon il s'agit peut être d'une erreur d'encode, essaye en enlevant le à de "Bonjour à tous les euro !", mais j'y crois pas trop.
              • Partager sur Facebook
              • Partager sur Twitter
                12 novembre 2010 à 19:02:25

                Tu as raison! C'était bien le "à". tu s'est comment fait pour que le "à" fonctionne!
                • Partager sur Facebook
                • Partager sur Twitter
                  12 novembre 2010 à 19:09:22

                  En début de fichier :
                  #!/usr/bin/python
                  # -*- coding: utf-8 -*-
                  


                  Et ensuite, au lieu de :
                  "Bonjour à tous les euro !"
                  

                  u"Bonjour à tous les euro !"
                  


                  Tu peux aussi regarder que la source est bien enregistré en UTF-8 avec ton éditeur de texte/IDE.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 novembre 2010 à 19:15:58

                    # -*- coding: utf-8 -*-
                    


                    Ca ne marche pas!
                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 novembre 2010 à 21:18:47

                      Darel à très certainement raison:

                      Citation : Darel

                      Tu peux aussi regarder que la source est bien enregistré en UTF-8 avec ton éditeur de texte/IDE


                      Ton fichier ne doit pas être encodé en utf-8. Quelle éditeur utilises tu?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 novembre 2010 à 22:23:30

                        mmm, c'est louche.
                        Il y a forcement un problème d'encodage quelque part.
                        Tu parles bien de l'encodage généré par ton éditeur, et pas de l'entête de ton fichier?
                        Sinon essaye avec un autre éditeur.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 novembre 2010 à 22:25:59

                          oui je parle bien de l'encodage générer pas l'editeur!
                          je vais essaiyer avec un autre programme
                          • Partager sur Facebook
                          • Partager sur Twitter
                            14 novembre 2010 à 18:04:48

                            Re bonjour tout le monde!

                            J'ai en un problème avec wxpython sûrement un problème de codage mais je vois pas ou?

                            Donc voici mon code :
                            # !/usr/bin/python
                            # -*- coding: utf-8 -*-
                            
                            import wx
                            
                            class Fenetre(wx.Frame):
                                def __init__(self, titre):
                                    wx.Frame.__init__(self, None, -1, title = titre)
                                    frameSizer = wx.BoxSizer(wx.VERTICAL)
                                    panelSizer = wx.BoxSizer(wx.HORIZONTAL)
                                    conteneur = wx.Panel(self, -1)
                                    etiquette = wx.StaticText(conteneur, -1, "Bonjour  tous les monde !", style = wx.ALIGN_CENTRE)
                                    panelSizer.Add(etiquette, 1, wx.ALIGN_CENTRE)
                                    conteneur.SetSizer(panelSizer)
                                    frameSizer.Add(conteneur, 1, wx.EXPAND)
                                    self.SetSizer(frameSizer)
                                    frameSizer.SetSizeHints(self)
                                    self.SetSize(200, 100)
                            
                            class MonApp(wx.App):
                                def OnInit(self):
                                    fen = Fenetre("Exemple 1")
                                    fen.Show(True)
                                    self.SetTopWindow(fen)
                                    return True
                            
                            app = MonApp()
                            app.MainLoop()
                            

                            Si quelqu'un vois l'erreur! Car je vois pas!

                            Merci d'avance!
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              14 novembre 2010 à 18:45:12

                              Bonjour,

                              Si tu utilise Python 2, alors tu dois, comme te l'a déjà dit Darel, préfixer tes chaines d'un 'u', pour y insérer des caractères accentués :
                              u"éèàç"

                              Sinon je ne vois pas non plus...
                              • Partager sur Facebook
                              • Partager sur Twitter
                                14 novembre 2010 à 19:03:05

                                Citation : LeYan'tibus


                                Si tu utilise Python 2, alors tu dois, comme te l'a déjà dit Darel, préfixer tes chaines d'un 'u', pour y insérer des caractères accentués :
                                u"éèàç"


                                J'avais compris! Donc je n'utilise pas se caractère! Donc ça vient pas de ça!
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Anonyme
                                  14 novembre 2010 à 19:10:16

                                  (pas testé...)
                                  app = MonApp()
                                  app.OnInit()
                                  app.fen.MainLoop()
                                  


                                  Sinon, pourquoi def OnInit(self): plutôt que def __init__(self): ?
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Anonyme
                                    14 novembre 2010 à 21:59:46

                                    Ligne 18. C'est un tuple en argument.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      14 novembre 2010 à 22:09:46

                                      explique un peux, car je comprend pas l'erreur!
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        14 novembre 2010 à 22:29:21

                                        Correction.

                                        self.SetSize((200, 100))
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          14 novembre 2010 à 22:55:43

                                          J'ai essayer et ça marche! merci de votre aide à tous!
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Problème de fenêtre avec wxpython

                                          × 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