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