Programacion en GTK+

download Programacion en GTK+

of 20

Transcript of Programacion en GTK+

  • 8/2/2019 Programacion en GTK+

    1/20

    lvaro del [email protected]

    Profesor GsyC Universidad Mstoles

    Director Arquitectura LambdaUX

    Editor de Barrapunto

    Desarrollador de Planner

    Programacin en

    entornos grficos conGTK+

  • 8/2/2019 Programacion en GTK+

    2/20

    Contenidos

    Aplicaciones en entornos grficos

    Histora y claves de GTK+Desarrollo de aplicaciones

    Ejemplo de aplicaciones

    Entorno de desarrollo

    Conclusiones y preguntas

  • 8/2/2019 Programacion en GTK+

    3/20

    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)

  • 8/2/2019 Programacion en GTK+

    4/20

    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

  • 8/2/2019 Programacion en GTK+

    5/20

    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

    Casi 200 desarroll.

    +300.000 lneas

    Cerca de 100 widgets

    GTK+ usa:

    Glib

    Pango

    ATK

    50% aplicaciones X

    la usan en mi entorno

  • 8/2/2019 Programacion en GTK+

    6/20

    Primera aplicacin GTK+#include

    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

  • 8/2/2019 Programacion en GTK+

    7/20

    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

    ....

  • 8/2/2019 Programacion en GTK+

    8/20

    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

  • 8/2/2019 Programacion en GTK+

    9/20

    Ejemplo de aplicacin conGlade

  • 8/2/2019 Programacion en GTK+

    10/20

    GTK+ 1.x vs 2.x

  • 8/2/2019 Programacion en GTK+

    11/20

    GNOME: No slo GTK+ Entorno natural

    GTK+

    Paneles Escritorio (nautilus)

    Sesiones

    Aspecto (temas)

    No slo vale GTK+

    Aplicaciones:

    gedit

    gimp openoffice

    gaim

    firefox ...

  • 8/2/2019 Programacion en GTK+

    12/20

    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

  • 8/2/2019 Programacion en GTK+

    13/20

    Tour por Planner

  • 8/2/2019 Programacion en GTK+

    14/20

    Aplicaciones recientes

    (estado del arte) Muine Evolution 2.0

    Rhythmbox

    Synaptic

  • 8/2/2019 Programacion en GTK+

    15/20

    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 ()

  • 8/2/2019 Programacion en GTK+

    16/20

    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)

  • 8/2/2019 Programacion en GTK+

    17/20

    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.

  • 8/2/2019 Programacion en GTK+

    18/20

    Referenciashttp://www.gtk.org

    http://lists.gnome.org

    http://es.gnome.orghttp://gtk-sharp.sourceforge.net/

    http://www.pygtk.org/

  • 8/2/2019 Programacion en GTK+

    19/20

    PREGUNTAS?

  • 8/2/2019 Programacion en GTK+

    20/20

    Agradecimientos Cursos de verano de la UAM

    Equipo de desarrollo de GTK+

    Proyecto GNOME Richard Stallman por la GPL