次のコードがあります。
import wx
class CotizadorWindow(wx.Frame):
def __init__(self):
super(CotizadorWindow,self).__init__(None)
self.CreateInteriorWindowComponents()
self.SetTitle(u"Cotizador")
def CreateInteriorWindowComponents(self):
self.hbox=wx.BoxSizer(wx.VERTICAL)
self.panel1=wx.Panel(self,-1,style=wx.SIMPLE_BORDER)
self.SetSizer(self.hbox)
self.Centre()
self.hbox.Add(self.panel1,1,wx.EXPAND|wx.ALL,3)
wx.StaticText(self.panel1,label=u"Cotización", pos=(10,10))
self.bxCotizacion=wx.TextCtrl(self.panel1,size=(80,-1),pos=(80,8))
self.btnAltaCliente=wx.Button(self.panel1,label='Alta cliente', pos=(100,37))
self.btnAltaCliente.Bind(wx.EVT_BUTTON,self.Alta)
def Alta(self,event):
altacliente=DlgAltaCliente(None, title='Nuevo Cliente')
altacliente.ShowModal()
altacliente.Destroy()
def ClearCliente2(self):
self.bxCotizacion.Value='1'
class DlgAltaCliente (wx.Dialog):
def __init__(self,*args,**kw):
super(DlgAltaCliente,self).__init__(*args,**kw)
self.InitUI()
self.SetSize((200,200))
self.SetTitle("Alta de Cliente")
def InitUI(self):
pnl=wx.Panel(self)
vbox=wx.BoxSizer(wx.VERTICAL)
hbox=wx.BoxSizer(wx.HORIZONTAL)
okButton=wx.Button(self,label='OK')
closeButton=wx.Button(self,label='Cancelar')
hbox.Add(okButton)
hbox.Add(closeButton, flag=wx.LEFT,border=5)
vbox.Add(pnl,proportion=1, flag=wx.ALL|wx.EXPAND,border=5)
vbox.Add(hbox,flag=wx.ALIGN_CENTER|wx.TOP|wx.BOTTOM, border=10)
self.SetSizer(vbox)
okButton.Bind(wx.EVT_BUTTON,self.EvtGuardarCliente)
closeButton.Bind(wx.EVT_BUTTON,self.EvtOnClose)
def EvtGuardarCliente(self,event):
self.Destroy()
cotizador=CotizadorWindow()
cotizador.ClearCliente2()
def EvtOnClose(self,event):
self.Destroy()
app=wx.App()
frame=CotizadorWindow()
frame.Show()
frame.Maximize()
app.MainLoop()
2番目のクラスでダイアログを作成し、閉じた後、ダイアログの情報を1番目のクラスコンポーネントのコンポーネントに転送する必要があります。うまくいきません。どんな助けでも大歓迎です。