onLoad y GTK

Arnau Sanchez arnau en ehas.org
Mie Jul 19 01:14:57 CEST 2006


> estoy desarrollando mi primera aplicación python+GTK+glade y quisiera
> saber que señal tengo que recoger para que cuando termine de mostrarse
> el formulario en pantalla y este listo para usar pueda, realizar mi
> código como cargar datos en un treeView o mostrar un dialogo.

Creo que no lo enfocas bien, las señales se asocian a eventos de usuario, no a 
que la pantalla se actualice o no, de eso ya se encarga GTK. Si al principio de 
tu programa tienes que tocar widgets, hazlo antes de llamar a gtk.main.

Muy resumidamente, los pasos típicos de una aplicación GTK serían:

- importar modulos pygtk, gtk, gtk.glade, gobject
- cargar el fichero glade (gtk.glade.XML)
- llenar los widgets con valores iniciales (por ejemplo rellenar la tabla de un 
  treeview)
- asociar (con connect) las señales de los widgets a las funciones/métodos 
correspondientes
- llamar a show() del widget inicial (innecesario si ya está marcado como 
visible en el fichero glade)
- gtk.main()

a partir de aquí, sólo se ejecutarán funciones que hayas ligado a eventos 
mediante connect(). Debes tener en cuenta que el GUI quedará congelado durante 
el tiempo que tus funciones estén ejecutándose, pero si son funciones "normales" 
se ejecutarán rápido y no se notará en absoluto. Cuando no hay más remedio que 
hacer operaciones en segundo plan, se suelen usar threads (módulo threading, 
usándolo junto con object.idle_add()), pero no te lo recomiendo si estás empezando.

> También quisiera saber que interfaz tienes las señales GTK para poder
> poner la cabecera correctamente en el código python.

Para eso está el manual. Aunque lo más habitual es que lleven sólo el widget 
como primer parámetro, no siempre es así:

file:///usr/share/doc/python-gtk2-doc/html/gtk-class-reference.html

arnau
------------ 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