Publicado el 4 de Marzo del 2020
464 visualizaciones desde el 4 de Marzo del 2020
509,4 KB
31 paginas
Creado hace 18a (20/06/2006)
Desarrollo de aplicaciones Python-GTK
Jesús Espino García
25 de Abril de 2006
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
1 / 31
Contenidos
Introducción.
Conceptos básicos.
Interfaces.
Algo de código.
Ejemplos.
Referencias.
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
2 / 31
Introducción.
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
3 / 31
¿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
25 de Abril de 2006
4 / 31
¿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
25 de Abril de 2006
5 / 31
¿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
25 de Abril de 2006
6 / 31
Conceptos básicos.
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
7 / 31
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
25 de Abril de 2006
8 / 31
Contenedores
Widgets que cotienen otros widgets
Ventana.
Cajas.
Notebooks.
Otros...
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
9 / 31
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
25 de Abril de 2006
10 / 31
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
25 de Abril de 2006
11 / 31
Interfaces.
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
12 / 31
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
25 de Abril de 2006
13 / 31
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
25 de Abril de 2006
14 / 31
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
25 de Abril de 2006
15 / 31
Algo de código.
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
16 / 31
Básico
import gtk
window = gtk.Window()
window.show()
gtk.main()
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
17 / 31
Insertando algun widget
...
button = gtk.Button()
button.show()
window.add(button)
...
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
18 / 31
Cambiando información de un widget.
...
button.set_label("Pulse Aqui")
...
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
19 / 31
Conectando una señal
...
button.connect("clicked",boton_clickeado)
...
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
20 / 31
Definiendo un manejador
...
def boton_clickeado(widget):
print "hola mundo"
...
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
21 / 31
Importar un interfaz generado
...
xml = gtk.glade.XML("ruta/archivo.glade")
...
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
22 / 31
Conectar las señales
...
xml.signal_autoconnect(locals())
...
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
23 / 31
Ejemplos.
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
24 / 31
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
25 de Abril de 2006
25 / 31
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
25 de Abril de 2006
26 / 31
Para terminar.
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
27 / 31
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
25 de Abril de 2006
28 / 31
Dudas
. . .
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
29 / 31
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
25 de Abril de 2006
30 / 31
Fin
Jesús Espino García (UC3M)
Desarrollo de aplicaciones Python-GTK
25 de Abril de 2006
31 / 31
Comentarios de: Desarrollo de aplicaciones Python-GTK (0)
No hay comentarios