Professional Documents
Culture Documents
Aplicaciones grficas
Cada da son ms necesarias Es una parte muy importante del resultado final Motivos frikis ... Pero nunca tienes tiempo para aprender
Situacin actual
Hay muchas posibilidades
GTK+ Qt TK WxWindows Motif Xforms Xlib
Por qu PyGTK?
Es totalmente libre Es fcil de aprender Lo que aprendes sirve en otros lenguajes Mucha documentacin y tutoriales Queda bonito Python es introspectivo Python es de alto nivel Puede usar libglade
Herramientas
Emacs (o lo que sea) Glade y libglade Python Devhelp (con libro de GTK+)
GTK+
Gimp Toolkit Usada por Gnome Widget Pseudo Orientada a objetos Pensada para C Muchos recubrimientos
C++ Python Java Mono
7
18 Noviembre 2004, Pablo Barrera Gonzlez
Gtk+
Temas GDK Pango Drag and Drop
Partes de Gtk+
Widget Seales Callbacks Main_loop
Boton1
clicked
MainLoop
callback
on_boton1_clicked
Boton2
clicked
callback
on_boton2_clicked
Widgets
Jerarqua Orientados a Objetos Ventana
Contenedores
Cualquier Widget
10
Glade
Entorno grfico Ventanas, Widgets y Seales Guarda la informacin en XML
11
12
13
libGlade
Permite cargar el XML creado por Glade Permite conectar las seales a sus manejadores Cambiando el archivo Glade, cambia la interfaz
self.xml = gtk.glade.XML('proyecto1.glade')
14
15
Manejadores
Mtodos para atender a las seales Dos tipos:
1 parmetro de entrada (widget) 2 parmetros de entrada (widget, evento)
16
Arrancando la aplicacin
Cargamos el archivo Glade Conectamos los manejadores Comenzamos el bucle de GTK
17
Acceder a un widget
Usando gtk.glade y el archivo xml
self.entryC = self.xml.get_widget("nombre")
18
Trucos
Usar la ayuda de Python La introspeccin con los widgets Buscar ejemplos de GTK Usar Devhelp o el API de GTK+
19
20
21
Hilos de ejecucin
En general es mejor usar funciones idle y temporizadores An as es posible usar hilos
import thread gtk.threads_init() thread.start_new_thread(gui.run, ()) gtk.threads_enter() gtk.main() gtk.threads_leave()
22
Otras funcionalidades
Archivos po Teclas rpidas Funciona en Microsoft Windows
23
Referencias
http://www.gtk.org/ http://www.pygtk.org/ http://glade.gnome.org/ http://primates.ximian.com/~sandino/python-glade/ http://gruppy.sicem.biz/componentes#gazpacho
24
Preguntas?