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 :

GUI & App : comment séparer les deux choses


Sujet :

wxPython

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 17
    Par défaut GUI & App : comment séparer les deux choses
    Bonjour,

    Je souhaite créer une application avec wxPython.
    j'ai bien compris comment créer l'application et gérer les actions avec bind et wx.EVT

    J'aimerais seulement que les méthodes associées aux binds ne soient pas dans le même classe que l'interface graphique.

    Avez-vous des exemples ?

    Merci !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut
    A ma connaissance, il est difficile de faire exactement comme tu le souhaites.

    Personnellement, je sépare tout le code de l'interface graphique d'avec le code principal.

    Voilà comment je fais :
    Admettons que j'ai mon programme dans "codesource.py" et que je construise mon interface graphique dans "GUI.py"

    Dans GUI.py, j'ai avec les importations

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    import codesource as code
    Ensuite, je fais appel aux classes de codesource, comme dans l'exemple suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    class MainWindow (wx.Frame):
        def __init__ (self, parent, ID, title, pos=wx.DefaultPosition, \
                      size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE):
            wx.Frame.__init__(self, parent, ID, title, pos, size, style)
            self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
     
            self.locale = code.Locale("fr_FR.aff","fr_FR.locale")
            self.blocklist = code.BlockList()
            self.dico = code.Dico (False)
     
            [...]
     
        def OnOuvrir (self, event):
            dial = wx.FileDialog ( self, "Ouvrir un dictionnaire", "", "", \
                                   "Dictionnaire (*.dic)|*.dic", \
                                   wx.OPEN | wx.HIDE_READONLY )
            if (dial.ShowModal() == wx.ID_OK) & os.path.exists(dial.GetPath()):
                self.WaitPointer()
                self.stat_bar.SetStatusText("Lecture du fichier...", 0)
                self.blocklist.Vider()
                self.blocklist.ReadFile(dial.GetPath())
                self.SetTitle(code.ID_VERSION + "  --  " + dial.GetPath())
                self.stat_bar.SetStatusText("Tri en cours...", 0)
                self.blocklist.Trier()
                self.MaJ()
                self.stat_bar.SetStatusText("", 0)
                self.ActivePointer()

Discussions similaires

  1. Comment séparer les nombres à virgule ex : 25,35
    Par kraken972 dans le forum Langage
    Réponses: 3
    Dernier message: 15/05/2008, 22h23
  2. Réponses: 3
    Dernier message: 29/01/2008, 18h36
  3. Réponses: 10
    Dernier message: 08/07/2007, 17h15
  4. [PEAR][HTML_QuickForm] Comment séparer les différents champs ?
    Par mohican13 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 17/02/2006, 08h21
  5. [Volume sonore] Comment séparer les volumes
    Par Manopower dans le forum Windows
    Réponses: 1
    Dernier message: 05/09/2005, 11h50

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