Вы находитесь на странице: 1из 20

Programacin en entornos grficos con GTK+

lvaro del Castillo


acs@barrapunto.com
Profesor GsyC Universidad Mstoles Director Arquitectura LambdaUX Editor de Barrapunto Desarrollador de Planner

Contenidos
Aplicaciones en entornos grficos Histora y claves de GTK+ Desarrollo de aplicaciones Ejemplo de aplicaciones Entorno de desarrollo Conclusiones y preguntas

Entornos grficos
Modo grfico: ventanas, iconos y apuntador
La clave es ver, seleccionar y actuar Fcil de recordar e intuitivo

Entornos texto en extincin. Software libre: GNOME y KDE Modo texto: flexibles, potentes y complejos
Recordar los comandos para su ejecucin (sintaxis) Poco intuitivo y fcil de olvidar (editor vi)

Desarrollo aplicaciones para entornos grficos

Utilizar ventanas, iconos y widgets Diseo de la interfaz previo a la aplicacin (prototipos) Pruebas de la interfaz: intuitivo, sencillo ... Seleccin de toolkit para implementar Desarrollo de la aplicacin Pruebas de ergonoma finales

Presentacin de GTK+

Creacin de GUI Uso de C con objetos Desde 1.0 a 2.4 67 versiones tras 1.0 Ms de 7 aos Ms de 6000 commits

+300.000 lneas Cerca de 100 widgets GTK+ usa:


Glib Pango ATK

Casi 200 desarroll.

50% aplicaciones X la usan en mi entorno

Primera aplicacin 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 (); }

Tamao del binario: 4040 bytes Dependencias: 23 libreras

Widgets principales

Ventanas Cajas de diseo Botones Etiquetas Mens Barras de herramientas

Barra de estado Barras de progreso Listas y rboles Imgenes Listas editables Iconos ....

Diseo de la interfaz con GLADE

Complejo situar widgets en interfaz Glade resuelve el diseo y genera XML libGlade lee el XML y crea la interfaz El programa gestiona los eventos (MVC) Ideal para dilogos y para cumplir la HIG Uso masivo dentro de las aplicaciones GTK+ Ejemplo de asistente de ADSL

Ejemplo de aplicacin con Glade

GTK+ 1.x vs 2.x

GNOME: No slo GTK+

Entorno natural GTK+ Paneles Escritorio (nautilus) Sesiones Aspecto (temas) No slo vale GTK+

Aplicaciones:

gedit gimp openoffice gaim firefox ...

Planner, gestin proyectos

Aplicacin orientada a GNOME 2.x Utilizacin de GTK+, Glade (10 dilogos) 62.500 lneas Widgets propios

Grfico 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_gtkimport* fromGTKimport* gtk_init() window=gtk_window_new (WINDOW_TOPLEVEL) label=gtk_label_new("Hola Miraflores2004") gtk_container_add(window,label) gtk_widget_show(label) gtk_widget_show(window) gtk_main()

Instalar entorno de desarrollo

Cualquier distribucin incluye GTK+ Necesidad de instalar las libreras de desarrollo (lib*-dev) Editor de textos Tutorial a mano, ejemplos (otras aplicaciones) Devhelp (mostrar)

Conclusiones

GTK+ toolkit muy maduro: casi 8 aos. Masivamente utilizado en el mundo del software libre, amplio soporte. API sencilla y accesible desde mltiples lenguajes. Aplicaciones con soporte de accesibilidad. Internacionalizacin mundial. Excelente documentacin.

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

Вам также может понравиться