C y C++ son sin duda los lenguajes de programación más extendidos:
- C: «el lenguaje», creado para programar Sistemas Operativos, permite hacer todo tipo de cosas.
- C++: C con objetos, un superconjunto de C.
Vamos a ver una pequeña introducción a Anjuta, uno de los IDEs más utilizados para desarrollar aplicaciones en C/C++.
Vamos a ver una pequeña introducción a Anjuta, uno de los IDEs más utilizados para desarrollar aplicaciones en C/C++.
Anjuta (anjuta.org) es un IDE (Integrated Development Environment, Entorno integrado de desarrollo) para programar en C/C++ en Linux, que utiliza las librerías GTK (gtk.org, las del escritorio GNOME). Está perfectamente integrado con Glade (glade.gnome.org) un diseñador de interfaces gráficas que también utiliza GTK y que puede generar código fuente o un archivo XML.
Instalar Anjuta y crear un proyecto
Veamos cómo instalar Anjuta y crear un proyecto:
- Instalamos Anjuta (paquete anjuta) y se instalará Glade por dependencias:
# apt-get install anjuta
- Abrimos Anjuta, seleccionamos Proyecto nuevo y se nos abrirá el Asistente:
- Seleccionamos el tipo de proyecto, en este caso Proyecto GNOME:
- Definimos los datos básicos del proyecto: Nombre del proyecto (HolaMundo), Objetivo (holamundo), Autor y Lenguage (C):
- Se pedirá una Descripción de nuestro programa (Hello world con Anjuta y Glade):
- Aún, nos pedirá algunos datos más, como Entrada en el menú (HolaMundo), Grupo en el menú (Applications) o Icono:
- Veremos una pantalla Resumen. Si todo está correcto presionamos Aplicar:
- Anjuta creará el proyecto y guardará los archivos en el directorio
~/Projects/HolaMundo
. Veremos los archivos de código fuente en el panel Proyecto, podremos editarlos en el Editor y veremos los mensajes en el panel Mensajes: - Ahora podemos construir la aplicación seleccionando Construir todo. Una vez terminado podemos ejecutarla seleccionando Ejecutar y obtendremos una ventana vacía:
Crear la interfaz gráfica con Glade
Veamos cómo crear la interfaz gráfica con Glade (se guarda en interface.c):
-
- Ahora vamos con la interfaz gráfica de la aplicación. Seleccionamos Editar GUI de la aplicación y arrancará Glade. Vemos que sólo existe una ventana (window1) y que está vacía:
- Desde el panel Propiedades podremos cambiar las propiedades de todos los objetos de la GUI. Por ejemplo, cambiemos el Título de la ventana window1:
- Si el tamaño de la ventana va a ser modificable por el usuario usaremos un layout a base de cajas colocando un control en cada celda, de manera que los controles se vuelvan a colocar al modificar el tamaño de la ventana. Disponemos para ello de tres controles:
– Caja vertical:
– Caja horizontal:
– Tabla:
Combinando estos controles podemos crear cualquier cuadro(layout) en nuestra ventana: - Si la ventana va a ser de tamaño fijo podemos utilizar un layout fijo:
- Luego colocaremos los controles (botones, etiquetas, campos de texto, etc.) y configuraremos sus propiedades desde el panel de Propiedades (Nombre, Tooltip, etc.):
Nota
Conviene dar a los controles nombres descriptivos: Exit_button mejor que button5.
- El panel Árbol de controles muestra todos los objetos de nuestra ventana:
- En este punto tenemos el GUI terminado pero todavía no hace nada. Para ello, asignaremos código a los eventos de los controles (se guardan en callbacks.c). Por ejemplo, vamos a hacer que cuando clickemos en el botón Exit_button la aplicación se cierre. En el panel de Propiedades de Exit_button añadimos el evento (señal) clicked:Ahora, si abrimos callbacks.c en el editor de Anjuta veremos que se ha añadido la siguiente función (manejador):
void on_Exit_button_clicked (GtkButton *button, gpointer user_data) {
}Sólo nos queda añadir (a mano) lo que queremos que haga la aplicación al hacer clic en el botón Exit_button (queremos que la aplicación se cierre):
void on_Exit_button_clicked (GtkButton *button, gpointer user_data) {
gtk_main_quit();
}Añadiremos el resto de eventos:
– Evento destroy del objeto window1 (si nos olvidamos este evento, cuando hagamos click en el botón Cerrar de la ventana ésta se cerrará pero la aplicación no terminará ¡seguirá ejecutándose!):
void on_window1_destroy (GtkObject *object, gpointer user_data) {
gtk_main_quit();
}– Evento clicked del objeto Aceptar_button (esta es la parte que hace algo, aunque no mucho):
void on_Aceptar_button_clicked(GtkButton *button, gpointer user_data) {
GtkWidget *label = lookup_widget(GTK_WIDGET(button), "Nombre_label");
GtkWidget *entry = lookup_widget(GTK_WIDGET(button), "Nombre_entry");
gchar output[50]="Hello ";
strcat(output,gtk_entry_get_text(GTK_ENTRY(entry)));
gtk_label_set_text(GTK_LABEL(label),output);
} - Para añadir a nuestro proyecto una ventana About insertaremos un control Diálogo Acerca de:
Y añadiremos el evento clicked del objeto About_button (llamamos a la función create_aboutdialog1 de interface.c):void on_About_button_clicked (GtkButton *button, gpointer user_data) {
gtk_widget_show(create_aboutdialog1());
} - Una vez terminada la GUI en Glade seleccionamos Construir y salimos guardando los cambios.
- Volvemos a Anjuta y compilamos seleccionando Construir todo. Una vez que termine ejecutamos la aplicación seleccionando Ejecutar:
Distribuir e instalar una aplicación
Veamos cómo distribuir e instalar nuestra aplicación:
- Para instalar la aplicación en nuestra máquina seleccionaremos Instalar.
- Para generar el archivo HolaMundo-0.1.tar.gz listo para distribuir (contiene código fuente) seleccionaremos Construir distribución.
- Para instalar nuestra aplicación en otra máquina realizaremos los mismos pasos que con cualquier otro tar.gz de código fuente:
# ./configure
# make
# make install