Download Desarrollo de aplicaciones Python-GTK
Document related concepts
no text concepts found
Transcript
Desarrollo de aplicaciones Python-GTK Jesús Espino Garcı́a 23 de Noviembre de 2005 Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 2/1 Contenidos Introducción. Conceptos básicos. Interfaces. Algo de código. Ejemplos. Referencias. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 3/1 Introducción. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 4/1 ¿Por qué PyGTK? Es Python!! Es totalmente libre (Python y GTK). Es rápido de aprender. Es rápido de desarrollar. Bien documentado. Lo aprendido sirve para otros lenguajes. Es bonito. Es multi plataforma (Python y GTK) Si usamos glade, separación de la interfaz del código Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 5/1 ¿Por qué no? Es Python :( Ejecución interpretada (lenta) Proyectos muy grandes (problemas de gran escala) Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 6/1 ¿Qué necesitamos? python: Interprete de python. python-gtk: Libreria de python GTK. glade: Aplicación de diseño de interfaces GTK. devhelp: Con el libro de GTK+ una buena referencia. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 7/1 Conceptos básicos. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 8/1 Widgets Los objetos con los que trabajeremos en GTK Ventanas. Cajas. Botones. Entradas. Etiquetas. Listas. Checkboxes. Otros... Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 9/1 Contenedores Widgets que cotienen otros widgets Ventana. Cajas. Notebooks. Otros... Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 10 / 1 Señales Eventos que se producen sobre un widget. Clicks. Pulsado de tecla. Destruir. Entrar en el area del widget. Salir de area del widget. Moviemiento de raton. Otros... Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 11 / 1 Manejadores Funciones o metodos que gestionan una señal, es decir, cualquier función o metodo definido que se enlaza a la señal de un objeto. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 12 / 1 Interfaces. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 13 / 1 Glade y Gazpacho Interfaz de diseño de interfaces. Es XML. Es Grafico. Es GTK. No pierdes control. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 14 / 1 Glade Interfaz mas popular pues fue el primero en salir en este campo y utiliza varias ventanas para realizar su trabajo. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 15 / 1 Gazpacho Interfaz alternativo, menos utilizado pero una opción más y utiliza una única ventanas para realizar su trabajo. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 16 / 1 Algo de código. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 17 / 1 Básico import gtk window = gtk.Window() window.show() gtk.main() Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 18 / 1 Insertando algun widget ... button = gtk.Button() button.show() window.add(button) ... Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 19 / 1 Cambiando información de un widget. ... button.set_label("Pulse Aqui") ... Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 20 / 1 Conectando una señal ... button.connect("clicked",boton_clickeado) ... Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 21 / 1 Definiendo un manejador ... def boton_clickeado(widget): print "hola mundo" ... Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 22 / 1 Importar un interfaz generado ... xml = gtk.glade.XML("ruta/archivo.glade") ... Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 23 / 1 Conectar las señales ... xml.signal_autoconnect(locals()) ... Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 24 / 1 Ejemplos. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 25 / 1 Mozilla en 30 lineas Ejemplo de insertar un gecko en una aplicación GTK Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 26 / 1 Sumadora Ejemplo de una sumadora que utiliza un XML de glade para generar el interfaz. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 27 / 1 Para terminar. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 28 / 1 Referencias ¿Por dónde empezar? http://www.pygtk.org: Referencia completa. ¿Dónde preguntar? Lista de correo de pygtk. Lista de correo de python. Listas de distribución de grupos de usuarios de Linux. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 29 / 1 Dudas ... Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 30 / 1 Agradecimientos Gracias a Pablo Barrera por la charla de Python GTK con la que empecé con esto. Gracias al equipo de LUC3M por permitirme trabajar en un proyecto tan interesante. Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 31 / 1 Fin Jesús Espino Garcı́a (UC3M) Desarrollo de aplicaciones Python-GTK 23 de Noviembre de 2005 32 / 1