wxpython frames

Carlos López Pérez clp en opencanarias.com
Vie Oct 28 11:47:50 CEST 2005


Otra posible solución....


self.main = wxProvincias.wxProvincias(CargarDiccionarios, self)

----

class wxProvincias(wx.Frame):
        def __init__(self, fOnClose, parent):
                wx.Frame.__init__(self, ...)
		self.fOnClose = fOnClose
		self.frameParent = parent
                ....
                self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)

        def OnCloseWindow(self, event):
                self.fOnClose(self.frameParent)
                self.Destroy()


El vie, 28-10-2005 a las 11:29 +0200, Amm-Python escribió:
> Gracias por tu respuesta, pero...
> Es una opción interesante, pero la función CaragarDiccionarios está en
> el otro Frame.
> Es más, puede que se necesite realizar la misma operación desde otros
> Frames.
> Ejemplo:
> 
> Aplicación
>   ---------------Frm1 (Empresas)
>                   -------------Frm3 (Provincias)
>                   (refrescar list prov.)
> .
> .
> .
>   ---------------Frm2 (Clientes)
>                   -------------Frm3 (Provincias)
>                   (refrescar lst prov.)
> .
> .
> .
> 
> Es decir; desde un mantenimiento A, en el que debemos seleccionar una
> provincia de una lista,
> Podemos acceder al mantenimiento B, de provincias, para poder dar de
> alta nuevos registros.
> Esos nuevos registros deben ser actualizados en la lista del
> mantenimiento A cuando salimos del B.
> 
> El mantenimiento B puede ser llamado desde otros mantenimientos que
> necesiten seleccionar provincias.
> 
> En tu solución se supone que la función CargarDiccionarios está en el
> propio mantenimiento de provincias
> Y yo necesito que esté en el otro frame.
> 
> Una solución podría ser poder especificar el "parent" en la función
> OnClose, y llamar la función del parent, pero no se cómo.
> 
> De momento y mientras encuentro otra solución, lo haré mediante un
> pytimer.
> Activaré el timer al llamar al frame provincias.
> Y en el notify del timer miraré que ya no existe el formulario
> provincias, pararé el timer y cargaré los diccionarios.
> Creo que es una chapuza, pero parece que funciona.
> 
> 
> > -----Mensaje original-----
> > De: python-es-bounces en aditel.org 
> > [mailto:python-es-bounces en aditel.org] En nombre de Carlos López Pérez
> > Enviado el: divendres, 28 / octubre / 2005 09:52
> > Para: La lista de python en castellano
> > Asunto: Re: [Python-es] wxpython frames
> > 
> > 
> > No se si te he entendido bien. Lo que te sugiero es los siguiente...
> > 
> > La idea es que utilices el evento OnClose del Frame.
> > y ahí llames a actualizar diccionarios. Deberás modificar tu 
> > código para que te sirva el CargarDiccionarios en el otro frame.
> > 
> > Espero que te sirva.
> > 
> > from ... import CargarDiccionarios
> > 
> > class wxProvincias(wx.Frame):
> > 	def __init__(self, ...):
> > 	        wx.Frame.__init__(self, ...)
> > 		....
> > 		self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
> > 
> > 	def OnCloseWindow(self, event):
> > 		CargarDiccionarios(...)
> > 		self.Destroy()
> >         
> > 
> > El jue, 27-10-2005 a las 16:38 +0200, Amm-Python escribió:
> > > EJECUTA MIENTRAS SE MUESTRA EL FORMULARIO
> > > DE LAS PROVINCIAS
> > -- 
> > Carlos López Pérez <clp en opencanarias.com>
> > 
> > 
> 
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
> 
-- 
Carlos López Pérez <clp en opencanarias.com>

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es