[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