Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/09/2014, 16:07
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: wxpython: Regresar a panel padre desde panel hijo

Yo lo probé y no podía regresar del panel de 2 botones al main.

Lo único que te falto fue que confundes Panel y Frame.

Código Python:
Ver original
  1. import wx
  2.  
  3. class bFrame(wx.Panel):
  4.     def __init__(self,parent):
  5.         wx.Panel.__init__(self, parent, size=(353,270))
  6.         self.parent = parent
  7.  
  8.         mainButton = wx.Button(self, -1, '&Back to Main',pos=(100,100),size=(-1,30))
  9.         self.Bind(wx.EVT_BUTTON, self.backMain,mainButton)
  10.  
  11.     def backMain (self, event):
  12.         self.parent.panel.Show()
  13.         self.Destroy()
  14.  
  15. class aFrame(wx.Panel):
  16.     def __init__(self, parent):
  17.         wx.Panel.__init__(self, parent, size=(353,270))
  18.  
  19.         self.parent=parent
  20.  
  21.         mainButton = wx.Button(self, -1, '&Back to Main',pos=(100,100),size=(-1,30))
  22.         self.Bind(wx.EVT_BUTTON, self.backMain,mainButton)
  23.  
  24.         bButton= wx.Button(self, -1, 'b',pos=(100,10),size=(-1,30))
  25.         self.Bind(wx.EVT_BUTTON, self.b,bButton)
  26.  
  27.     def backMain (self, event):
  28.         self.parent.panel.Show()
  29.         self.Destroy()
  30.  
  31.     def b(self,event):
  32.         bframe = bFrame(parent=self.parent)
  33.         bframe.Centre()
  34.         bframe.Show()
  35.         self.Destroy()
  36.  
  37. class MainFrame(wx.Frame):
  38.     def __init__(self,parent,id):
  39.         wx.Frame.__init__(self,parent,id,'Title',size=(353,270),style=wx.CAPTION|wx.CLOSE_BOX|wx.SYSTEM_MENU|wx.MINIMIZE_BOX)
  40.         self.panel = wx.Panel(self)
  41.  
  42.         aButton= wx.Button(self.panel, -1, 'a',pos=(10,10),size=(-1,30))
  43.         self.Bind(wx.EVT_BUTTON, self.a,aButton)
  44.  
  45.     def a(self,event):
  46.         aframe = aFrame(parent=self)
  47.         aframe.Centre()
  48.         aframe.Show()
  49.         self.panel.Hide()
  50.  
  51. if __name__ == '__main__':
  52.     app=wx.App()
  53.     frame=MainFrame(parent=None,id=999)
  54.     frame.Centre()
  55.     frame.Show()
  56.     app.MainLoop()

PD: Encuentra las diferencias.