2010-10-12 3 views
1

Я новичок в python, и я не уверен, как передавать данные между объектами. Ниже приведена вкладка с использованием python и wxwidgets. Как я могу получить доступ к экземпляру maintxt из метода GetText, так как их в разных классах?Передача данных между объектами в python

Спасибо.

........

#!/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

Вы никогда не пропускаете данные между классами. Вы передаете данные - объекты - среди объектов. Это все объекты. С каким объектом данных и с какими объектами графического интерфейса вы пытаетесь работать? Пожалуйста, ** обновите ** свой вопрос, чтобы определить экземпляры объекта, а не классы. –

+0

Я действительно упоминал, что это был экземпляр maintxt в моем сообщении. Я удалил классы слов из названия, если вы были в замешательстве. – usertest

ответ

4

Это звучит, как вы могли бы быть смешением логики с презентацией. Возможно, у вас должна быть сеть классов моделей, описывающих поведение вашего домена (страницы?), А затем передавать экземпляры этих классов в инициализаторы классов презентации, чтобы они знали, какие модели они представляют.

Подробнее об этом проекте: http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller

Смежные вопросы