[Python][PyGTK] Manejar más de una ventana
Jesus Rodriguez
foxandxss en gmail.com
Mar Oct 31 13:22:53 CET 2006
Buenas!, tengo una duda algo tonta, tenia un proyecto y queria abrir una
ventana desde mi ventana principal, recoger unos datos, y mostrarlos en mi
ventana principal, o sea, tener una clase de la ventana secundaria, llamarla
desde la otra clase, recoger datos y utilizarlos. (usaria glade para las
ventanas).
Encontré un ejemplo que hace eso, pero hay algo que no entiendo, a ver si
teneis alguna idea:
http://www.learningpython.com/2006/05/30/building-an-application-with-pygtk-and-glade/
Partimos de que parece que cuando python encuentra una sentencia del tipo:
self.wTree = gtk.glade.XML(self.gladefile, "wineDlg")
ya muestra la ventana, o sea, no espera a nada, solo a leer esta linea.
entonces, si tengo una segunda ventana, como se ve aqui, se crea una nueva
clase, un metodo run y se ejecuta desde el evento onAddWine:
def onAddWine(self, widget):
"""Called when use wants to add a wine"""
#Create the dialog, show it, and store the results
wineDlg = wineDialog()
result, newWine = wineDlg.run()
Entonces se llama al metodo "run" que contiene la sentencia de:
self.wTree = gtk.glade.XML(self.gladefile, "wineDlg")
Que eso por si solo ya abre la ventana, entonces si os fijais, más abajo hay
una sentencia así:
self.result = self.dlg.run()
que lo que hace es ejecutar el metodo run del widget "Window", vamos que
muestra la ventana y recoge el resultado.
Pero si ya de por si solo muestra la ventana aun sin usar esa linea....
usandola que hace?, esque no lo entiendo, no deberia mostrar 2 ventanas o
algo? o esa sentencia "sobreescribe" a la llamda normal.... no se si me
explico.
Eso era todo, muchas gracias.
Más información sobre la lista de distribución Python-es