Creación del Proyecto GTK Básico
GTK, es la librería que vamos a utilizar para
desarrollar aplicaciones gráficas, con ventanicas.
Según tengo entendido, Gtk fue inicialmente desarrollada para el
genial programa The Gimp.
En la programación con la
librería GTKmm (GTK para C++), existent varias posibilidades:
una de ellas es definir las ventanas en un archivo externo, realizado
con Glade, e importarlo en la ejecución de la aplicación
u, otra posibilidad, no hacer uso del mismo y definir las
características de nuestras ventanicas en el código
fuente. Vamos a empezar con esta última opción, para
ello, tenemos varias posibilidades en la creación del proyecto,
lo que aprovecharé para explicar algunas cosillas:
Proyecto Gtkmm Genérico
La
primera forma para realizar un proyecto GTKmm básico, es
seleccionar en el asistente de proyectos la opción GTKmm
genérico:
Tras
completar todos los apartados del proyecto, se autogenerará un
proyecto con un archivo main.cc que utiliza las librerías
gtkmm y libglademm (que permite importar archivos desarrollados
con el programa glade.)
Vamos a
reeditar el archivo main.cc con el siguiente código, la
aplicación más simple que podemos desarrollar.
#include <gtkmm.h>
int main(int argc, char *argv[])
{
Gtk::Main programa(argc, argv);
Gtk::Window miventanica;
programa.run(miventanica);
return 0;
}Al ejecutarlo la salida es una ventanica (200*200) cuyo título es el nombre de la aplicación.
Explicación código
Básicamente,
nuestras aplicaciones ejecutan otra aplicación, un proceso Gtk,
el cual correrá con la ventana que nosotros diseñamos.
#include
<gtkmm.h>
La
directiva include, va a incluir en nuestro archivo la
definición de clases Gtk, que nos van a permitir desarrollar
programas gráficos.
Gtk::Main programa(argc, argv);Esta
línea declara un objeto de nombre programa, del tipo Gtk::Main.
En Programación orientada a objetos, Poo, es habitual hablar de
objetos y en vez de variables.
El objeto Gtk::Main es
obligatorio en todo programa Gtk, y debe ser el primero en crearse.
Es la aplicación, el proceso que se va a ejecutar.
Gtk::Window miventanica;
Declaramos y definimos nuestra ventana GTK.
programa.run(miventanica);Lanzamos
la aplicación Gtk, con nuestra ventana. Esto es,
estará capturando eventos (pulsación de teclas,
movimientos de ratón,...) y gestionándolos (en nuestro
caso, no hemos añadido código alguno, solo las opciones
por defecto del objeto Gtk:Window [maximizar,...,cerrar]) hasta que se
cierre la ventana; momento que volverá a la función main,
donde aparece el
return 0;
que indica el final con éxito de nuestra aplicación.