programacion en gtk+
TRANSCRIPT
-
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