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