You are on page 1of 20

Programación en

entornos gráficos con


GTK+
Álvaro del Castillo
acs@barrapunto.com
Profesor GsyC Universidad Móstoles
Director Arquitectura LambdaUX
Editor de Barrapunto
Desarrollador de Planner
Contenidos

Aplicaciones en entornos gráficos


Historía y claves de GTK+
Desarrollo de aplicaciones
Ejemplo de aplicaciones
Entorno de desarrollo
Conclusiones y preguntas
Entornos gráficos
Modo gráfico: ventanas, iconos y apuntador
La clave es ver, seleccionar y actuar
Fácil de recordar e intuitivo
Entornos texto en extinción.
Software libre: GNOME y KDE
Modo texto: flexibles, potentes y complejos
Recordar los comandos para su ejecución (sintaxis)
Poco intuitivo y fácil de olvidar (editor vi)
Desarrollo aplicaciones para
entornos gráficos
● Utilizar ventanas, iconos y widgets
● Diseño de la interfaz previo a la aplicación
(prototipos)
● Pruebas de la interfaz: intuitivo, sencillo ...
● Selección de toolkit para implementar
● Desarrollo de la aplicación
● Pruebas de ergonomía finales
Presentación de GTK+
● Creación de GUI ● +300.000 líneas
● Uso de C con objetos ● Cerca de 100 widgets
● Desde 1.0 a 2.4 ● GTK+ usa:
● 67 versiones tras 1.0 – Glib
– Pango
● Más de 7 años
– ATK
● Más de 6000 commits
● 50% aplicaciones X
● Casi 200 desarroll.
● la usan en mi entorno
Primera aplicación GTK+
#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_add (GTK_CONTAINER (window),
gtk_label_new ("Hola"));
gtk_widget_show_all (window);
gtk_main ();
}

Tamaño del binario: 4040 bytes


Dependencias: 23 librerías
Widgets principales
● Ventanas ● Barra de estado
● Cajas de diseño ● Barras de progreso
● Botones ● Listas y árboles
● Etiquetas ● Imágenes
● Menús ● Listas editables
● Barras de ● Iconos
herramientas ● ....
Diseño de la interfaz con
GLADE
● Complejo situar widgets en interfaz
● Glade resuelve el diseño y genera XML
● libGlade lee el XML y crea la interfaz
● El programa gestiona los eventos (MVC)
● Ideal para diálogos y para cumplir la HIG
● Uso masivo dentro de las aplicaciones GTK+
● Ejemplo de asistente de ADSL
Ejemplo de aplicación con
Glade
GTK+ 1.x vs 2.x
GNOME: No sólo GTK+
● Entorno natural ● Aplicaciones:
GTK+ – gedit
● Paneles – gimp
● Escritorio (nautilus) – openoffice
– gaim
● Sesiones
– firefox
● Aspecto (temas)
– ...
● No sólo vale GTK+
Planner, gestión proyectos
● Aplicación orientada a GNOME 2.x
● Utilización de GTK+, Glade (10 diálogos)
● 62.500 líneas
● Widgets propios
– Gráfico de Gantt
– Ventanas emergentes en listas y árboles
– Panel lateral
Tour por Planner
Aplicaciones recientes
(estado del arte)
● Muine
● Evolution 2.0
● Rhythmbox
● Synaptic
Uso de GTK+ desde Python

from _gtk import *
from GTK import *
gtk_init()
window = gtk_window_new 
(WINDOW_TOPLEVEL)
label = gtk_label_new ("Hola 
Miraflores 2004")
gtk_container_add (window, label)
gtk_widget_show (label)
gtk_widget_show (window)
gtk_main ()
Instalar entorno de
desarrollo
● Cualquier distribución incluye GTK+
● Necesidad de instalar las librerías de
desarrollo (lib*-dev)
● Editor de textos
● Tutorial a mano, ejemplos (otras aplicaciones)
● Devhelp (mostrar)
Conclusiones
● GTK+ toolkit muy maduro: casi 8 años.
● Masivamente utilizado en el mundo del
software libre, amplio soporte.
● API sencilla y accesible desde múltiples
lenguajes.
● Aplicaciones con soporte de accesibilidad.
● Internacionalización mundial.
● Excelente documentación.
Referencias
http://www.gtk.org

http://lists.gnome.org

http://es.gnome.org

http://gtk-sharp.sourceforge.net/

http://www.pygtk.org/

¿PREGUNTAS?
Agradecimientos
● Cursos de verano de la UAM
● Equipo de desarrollo de GTK+
● Proyecto GNOME
● Richard Stallman por la GPL

You might also like