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