2010-10-12 6 views
1

Je suis novice en python et je ne suis pas sûr de savoir comment transmettre des données entre des objets. Voici un programme à onglets utilisant python et wxwidgets. Comment serais-je en mesure d'accéder à l'instance maintxt de la méthode GetText depuis leur dans différentes classes?Transmettre des données entre les objets en python

Merci.

........

#!/usr/bin/env python 
import wx 


class PageText(wx.Panel): 
    def __init__(self, parent): 
     wx.Panel.__init__(self, parent) 
     self.maintxt = wx.TextCtrl(self, style=wx.TE_MULTILINE, pos=(0, 40), size=(850,320)) 

     self.Show(True) 


class PageList(wx.Panel): 
    def __init__(self, parent): 
     wx.Panel.__init__(self, parent) 
     self.bPutText = wx.Button(self, id=-1, label='Put Text', pos=(855, 40), size=(75, 30)) 
     self.bPutText.Bind(wx.EVT_LEFT_DOWN, self.GetText) 


    def GetText(self, event): 
     # Write text into maintxt 


class MainFrame(wx.Frame): 
    def __init__(self): 
     wx.Frame.__init__(self, None, title="ADMIN") 

     p = wx.Panel(self) 
     nb = wx.Notebook(p) 

     vPageText = PageText(nb) 
     vPageList = PageList(nb) 

     nb.AddPage(vPageText, "Edit Text") 
     nb.AddPage(vPageList, "Book List") 

     sizer = wx.BoxSizer() 
     sizer.Add(nb, 1, wx.EXPAND) 
     p.SetSizer(sizer) 

if __name__ == "__main__": 
    app = wx.App() 
    MainFrame().Show() 
    app.MainLoop() 
+0

Vous passez jamais de données entre les classes. Vous passez des données - objets - parmi les objets. Ce sont tous des objets. Quel objet de données et quels objets GUI essayez-vous de travailler? Veuillez ** mettre à jour ** votre question pour identifier les instances d'objet, pas les classes. –

+0

J'ai effectivement mentionné que c'était l'instance maintxt dans mon message. J'ai supprimé les classes de mots du titre au cas où vous seriez confus. – usertest

Répondre

4

Il semble que vous pourriez être logique mélange avec présentation. Vous devriez peut-être avoir un réseau de classes de modèles qui décrivent les comportements de votre domaine (pages?), Puis transmettre les instances de ces classes aux initialiseurs de vos classes de présentation, afin qu'ils sachent quels modèles ils représentent.

En savoir plus sur cette conception: http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller

Questions connexes