Lanzar ventana con PyGTK

Daniel Ripolles (Eru) ripolles en aditel.org
Lun Oct 13 10:18:45 CEST 2003


El 2003.10.13 06:59, << oziko >> escribió:
> Hola llevo unos dias jugando con PyGTK, he trabajado poco con
> librerias
> gráficas pero ahora me he decidido a aprender a usar bien esta, he
> estado
> leyendo el tutorial de PyGTK que amablemente fue traducido al esp;ol
> por
> un miembro de la lista y he seguido los ejemplos que dan como  
> ejemplo,
> 
> pero no he encontrado como lanzar una ventana al precionar un boton  
> en
> la
> ventana principal.. Es decir tengo una ventana principal que tiene un
> boton que dice captuar datos, y cuando lo aprite quiero que me lance
> otra
> ventna que contendra un formulario para llenar.  La interfaz Gráfica
> ahora
> las estoy haciendo con glade. My bonito por cierto,, Bueno ojala  
> puden
> 
> orientarme o comentarme como es que se lanza una ventana o un cuadro
> de
> dialogo que no lo he visto en el tutorial.. Lo que se me ocurre es
> como lo
> he hecho en la ventana principal crear un nuevo objeto de la clase  
> que
> 
> maneje la nueva ventana, eso para crearla, pero como la lanzo esa es
> mi
> duda principal. Espero haber sido explícito. Muchas Gracias de
> antemano.
>

Yo lo que hago es utilizar los métodos .show() y hide() (para que la  
ventana no salga al principio del programa, al diseñar la interfaz dale  
a la propiedad Visible de la ventana el valor False).

Cuando quieras mostrar la ventana, simplemente usa ventana.show() .  
Para esconderla, ventana.hide() . Ten en cuenta que si vas a querer  
volver a mostrarla después (osea, casi seguro que sí) tienes que evitar  
que el usuario pueda "destruirla" pulsando en la cruz de cerrar  
ventana. Para conseguirlo, debes conectar la señal 'delete_event' a una  
función que se encargue de "esconder" la ventana, y que devualva True  
(para que no se destruya la ventana).

Si no entiendes muy bien eso último que he puesto que no te sepa mal  
preguntar :)

--
Daniel Ripolles ( Eru )
perl -e '$SIG{__WARN__}=sub{$_||=pop;
s,o.*,$^X,,s$/.*/$$,print};++$^W;m||'




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