Cerrar formulario mdi con todos sus hijos...
Ariel Nardelli
pan_python en yahoo.com.ar
Vie Nov 11 07:27:38 CET 2005
Ok lo pruebo y te cuento a ver como me va.....
Gracias!
Ariel
Carlos L��������������������������������� wrote:
>Yo nunca he usado MDI en mis aplicaciones.
>
>Pero lo que se me ocurre a priori es utilizar una estructura de datos
>para realizar lo que deseas.
>
>Cuando se creen los formularios hijos se registren en el padre mediante
>una función.
> En la creación del formualario hijo:
> __init__(self, ...)
> ....
> self.GetParent().registerMDIForm(self)
>
>En el formulario padre (previamente haber inicializado la lista
>self.mlChild = []):
> ...
> registerMDIForm(self, oChild):
> self.mlChild.append(oChild)
>
>
>En la destrucción de un formulario hijo, eliminar el registro en el
>formulario padre:
> ...
> removeMDIForm(self, oChild):
> self.mlChild.remove(oChild)
>
>Cuando se cierre el formulario padre, recorrer la lista y consultar una
>bandera por si están ocupados...
>
> busy = False
> for child in self.mlChild:
> if not child.isBusy():
> continue
> busy = True
> break
> if busy:
> #Para la destrucción
> return
> for child in self.mlChild:
> child.Close(True) # o Destroy...
>
>
>Salu2 de clp ;)
>
>
>
>
>El mié, 09-11-2005 a las 15:45 -0300, Ariel Nardelli escribió:
>
>
>>Hola!
>>Uso wx2.6 y se me esta presentando un problema...
>>
>>Tengo un solo formulario mdi donde dentro voy abriendo varios
>>formularios hijos para hacer las cosas, el tema es que cuando dan salir
>>desde la opcion del menu tengo puesto esto....
>>
>> self.Close()
>> self.Destroy()
>> sys.exit(0)
>>
>>O sea se cierra y destruye y sale el formulario mdi PERO no verifica que
>>ventanas estan habiertas (ventanas hijas) y por eso cierra directamente
>>todo.
>>Lo que yo quiero hacer es que antes de cerrar el formulario padre (mdi)
>>primero cierre todos los formularios hijos y despues recien cierre el
>>mdi, es mas, hasta podria poner una "bandera" para que si alguna ventana
>>esta haciendo un proceso que no se puede cortar no permita cerrar la
>>aplicacion :)
>>La cosa es como se hace? como hacer desde el mdi para saber que ventanas
>>hijas tengo abiertas y cerrarlas?, en cada formulario tengo una funcion
>>que las cierra que cierra las bases y todo lo demas, se llama atalo :)
>>asi que la idea para hacer un cierre prolijo seria ver que formularios
>>hay abiertos, ver si en ese formulario esta activada la bandera de que
>>esta procesado (bandera en 1) y despues ejecutar el atalo de ese
>>formulario para que haga un cierre "limpio"...
>>
>>Se puede hacer esto?, como?
>>
>>Gracias!!!!
>>Ariel
>>
>>
>>
>>------------------------------------------------------------------------
>>
>>_______________________________________________
>>Python-es mailing list
>>Python-es en aditel.org
>>http://listas.aditel.org/listinfo/python-es
>>
>>
--
Saludos
Panflin
www.reconquista.com.ar
------------ 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