Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK

Anuncio
Introducción al Desarrollo de
Aplicaciones Gráficas con PyGTK
Alejandro Valdés Jimenez
avaldes@gnome.org
October 23, 2010
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
1 / 17
Agenda
1
Algunos conceptos
2
Herramientas
3
Ejemplos
4
Recursos
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
2 / 17
Algunos conceptos
GUI
Graphical User Interface.
Permite interacción con una computadora a través de ventanas,
botones, etc.
Acciones dependen de la manipulación de estos objetos, através del
teclado, ratón.
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
3 / 17
Algunos conceptos
GUI
Widget.
Nombre genérico para botones, ventanas, barras de menú, etc.
Usuario interactúa con ellos.
Pueden contener otros widgets.
Signals.
Un evento produce una señal (clicked, edited, etc).
Callbacks.
Función llamada por una señal.
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
4 / 17
Algunos conceptos
Programación por eventos
Ejecución del programa depende de los eventos que ocurran
(presionar un botón, cerrar una ventana, etc).
GTK funciona de esta manera.
Loop principal (gtk.main()) a la espera de algún evento y pasar control
a alguna función (callback).
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
5 / 17
Algunos conceptos
Programación por eventos
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
6 / 17
Herramientas
python
VHLL (very high-level programming language).
Interpretado y OO.
Muy fácil de leer y mantener.
Bastante documentación.
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
7 / 17
Herramientas
GTK
Toolkit multiplataforma para crear interfaces gráficas de usuario,
escrito en C.
Bindings en C++, Java, perl, python, etc.
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
8 / 17
Herramientas
pygtk
Binding de GTK+
Parte del proyecto GNOME.
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
9 / 17
Herramientas
glade
Asistente para diseño de GUIs.
Almacena información en archivos XML.
http://deb.utalca.cl/ogv/glade.ogv
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
10 / 17
Herramientas
libglade
Cargar y procesar archivos XML.
Separa parte lógica de la aplicación.
Modificar interfaz (layout) sin necesidad de modificar código fuente.
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
11 / 17
Herramientas
gtkbuilder
GtkBuilder similar a Libglade, pero?
Libglade no forma parte de GTK.
Libglade sigue desarrollo independiente (demora en soporte de nuevos
widget y propiedades).
Desarrolladores de GTK mantienen esta bilioteca integrada en GTK.
gtk-builder-convert: Convierte archivos glade para ser cargados por
GtkBuilder.
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
12 / 17
Herramientas
devhelp
Programa de ayuda para desarrolladores (python-gtk2-doc).
http://deb.utalca.cl/ogv/devhelp.ogv
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
13 / 17
Herramientas
HIG - Human Interface Guidelines
Proyecto de usabilidad para GNOME.
”Recomienda” como debemos crear las interfaces, para que:
Los usuarios debieran aprender a usar de forma mas rápida la
aplicación.
La aplicación sea atractiva.
La aplicación sea accesible para todos
La aplicación se vea bien con los cambios de temas de escritorio
etc.
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
14 / 17
Herramientas
Editores
Donde escribir nuestros programas?
A gusto del consumidor...
Vi (Vim)
Gedit
Geany (http://deb.utalca.cl/ogv/geany.ogv)
Anjuta
...
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
15 / 17
Ejemplos
Manos a la obra!
Sin señales
Con señales
Con gtkbuilder
Con Clases
UIManager
SQLite + Treeview
Internacionalización (gettext)
Preferencias (gconf)
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
16 / 17
Recursos
Videos ejemplo.
http://deb.utalca.cl/ogv/
Enlaces
Glade: http://glade.gnome.org/
Python: http://www.python.org/
PyGTK: http://www.pygtk.org/
GNOME: http://www.gnome.org/
GNOME Chile: http://www.gnome.cl/
FSF: http://www.fsf.org/
gettext: http://www.gnu.org/software/gettext/
gconf: http://projects.gnome.org/gconf/
HIG: http://library.gnome.org/devel/hig-book/stable/
Graphviz: http://www.graphviz.org/
Lista de correo
http://mail.gnome.org/mailman/listinfo/gnome-cl-list
gnome-cl-list@gnome.org
Alejandro Valdés Jimenez ()
Introducción al Desarrollo de Aplicaciones Gráficas con PyGTK
October 23, 2010
17 / 17
Descargar