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