Programación gráfica con GCC y GTK

Que es GTK ?

GTK “GIMP Tool Kit”: Es un conjunto de bibliotecas multiplataforma para desarrollar interfaces gráficas de usuario (GUI), principalmente para los entornos gráficos GNOME, XFCE y ROX aunque también se puede usar en el escritorio de Windows, Mac OS y otros. Inicialmente fueron creadas para desarrollar el programa de edición de imagen GIMP, sin embargo actualmente se usan bastante por muchos otros programas en los sistemas GNU/Linux. Junto a Qt es una de las bibliotecas más populares para Wayland y X Window System.

Aunque GTK soporta un gran cantidad de lenguajes de programacion como python, c++, java, javascript; nuestro interes se centra en la programacion con gcc; lenguaje que por defecto trae las distribuciones linux y concretamente debian

Que es una Interfaz Gráfica de Usuario (GUI) ?

Una interfaz grafica no es más que la forma que tiene las aplicaciopnes informaticas para interactuar de manera amigable con el usuario; puesto que para hacerlo se utilizan las potencialidades de los despliegues gráficos (software y hardwarea) que los sitemas operativos modernos poseen; se puede definir como la “cara bonita” de las aplicaciones desarrolladas con los lenguajes de programacion, haciendolos compatibles con los escritorio de los sietmas operativos modernos y más si utilizan codigo y sotware libre, como es linux.

Que es un widget de GTK+ ?

Son objetos y funciones para crear la interfaces gráfica de usuario. Como ventanas, botones, menús, etiquetas, deslizadores, pestañas, etc. que permiten enriquecer las interfaces graficas de las aplicaciones.

Los más utilizados pueden ser:

Clase Descripción Imagen
GtkAccelLabel Etiqueta que muestra información de una tecla aceleradora a la derecha del texto GtkAccelLabel.png
GtkImage Widget que permite mostrar una imagen. GtkImage.png
GtkLabel Widget que permite mostrar una pequeña o mediana cantidad de texto. GtkLabel.png
GtkProgressBar Widget que indica el estado de un progreso. GtkProgressBar.png
GtkStatusbar Reporta mensajes de menor importancia al usuario en la barra de estado. GtkStatusbar.png
GtkStatusIcon Muestra un ícono en el área de notificación del sistema.

Botones

Clase Descripción Imagen
GtkButton Botón convencional. Crea una señal cuando se da click sobre él. GtkButton.png
GtkCheckButton Etiqueta con un botón el cual puede estar en dos estados: seleccionado o no seleccionado. GtkCheckButton.png
GtkRadioButton Opción de una lista múltiple de opciones. GtkRadioButton.png
GtkToggleButton Botón convencional el cual puede mantener su estado. GtkToggleButton.png
GtkLinkButton Botón que enlaza a una URL. GtkLinkButton.png
GtkScaleButton Botón que hace aparecer una escala.
GtkVolumeButton Botón que hace aparecer un control de volumen. GtkVolumeButton.png

Cómo instalar las librerias GTK+ en debian

En primer lugar antes de emepzar a programar con GTK+ debemos instalar sus librerias, para ello utilizamos los siguientes comandos:

# apt-get install gtk2.0 
# apt-get update
# apt-get install libgtk2.0-dev
# apt-get update

Hecho esto ya tenemos disponibles el acceso a las librerías; lo único que nos queda es empezar a utilizarlas en nuestros programas; tal como siempre lo hemos hecho en el encabezado del programa en c debemos convocar a las librería; es decir indicarle al compilador que a incluir las referencias a la librería GTK; colocando la sentencia siguiente en la primera línea del programa:

#include <gtk/gtk.h>

a partir de esta primera instrucción de la sentencia include empezaremos a escribir el código de nuestro programa y las distintas sentencias que convocan a los widgets que necesitamos como : botones, cajas de texto, cajas de entradas, sliders, imágenes, etc.

Una vez que hayamos terminado de escribir todo el código del programa ya lo podemos compilar utilizando la siguiente instrucción por medio de la terminal o consola:

# gcc nombre_del_programa_fuente.c -o nombre_del_programa_objeto -Wall  `pkg-config --libs --cflags gtk+-2.0`

Para poder ejecutar nuestro programa compilado bastará con digitar la siguiente instrucción:

# ./nombre_del_programa_objeto

Utilicemos un ejemplo

/********************************/
/* MI PRIMER PROGRAMA CON 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_window_set_title (GTK_WINDOW (window), "Mi primer programa");
gtk_widget_show (window);
gtk_main ();
return 0;
}

Para compilarlo entonces digitamos:

# gcc primerp.c -o primerp -Wall `pkg-config --libs --cflags gtk+-2.0`

Nos producirá un segundo archivo denominado primerp el cual es nuestro binario ejecutable.

Para ejecutarlo debemos asegurarnos de que tiene los permisos de ejecución adecuados; podemos hacerlo mediante el comando

# chmod +x primerp

Listo, ahora podemos ejecutarlo así:

# ./primerp

y su resultado sera una ventana con su respectivo titulo