GTK es una biblioteca para crear interfaces gráficas, su origen se remonta a los principios de Linux y sus ambientes gráficos. En aquel entonces solo existía KDE que emulaba lo que en Solaris es CDE, actualmente se puede utilizar en equipos con Solaris y que está basado en Motif, el problema es que Motif no es libre, y esto impedía que se desarrollaran aplicaciones libres en su distribucion y que a la vez fueran libres en sus dependencias.

El equipo de desarrollo del editor de imágenes más popular en UNIX, The GIMP, decidió desarrollar su propio conjunto de bibliotecas para el desarrollo de interfaces gráficas, y le nombró GTK por Gimp Tool Kit, en un principio GTK fue desarrollado exclusivamente para GIMP, pero sus habilidades le permitieron extenderse y servir para múltiples propósitos.

Fue entonces cuando se creó el proyecto GNOME y este tomó como biblioteca base a GTK para crear las interfaces. A lo largo de los años GTK ha ido creciendo, y actualmente se encuentra en la versión 2.8, y se ha renombrado a GTK+, ahora GTK+ no es solo una biblioteca para el desarrollo de interfaces, sino un conjunto de bibliotecas para desarrollo de aplicaciones gráficas, que incluyen GDK (GIMP Drawing Kit), ATK (Accesibility Tool Kit), Pango para el formato de texto, y el mismo GTK.

A pesar de que GTK+ es desarrollado enteramente en C (por razones de portabilidad y velocidad) su API esta completamente orientada a objetos, aunque parezca imposible dado que C no es un lenguaje orientado a objetos, GTK+ implementa su propio  sistema para este propósito utilizando la idea de callbacks y clases utilizando punteros a funciones.

GTK+ es completamente portable, existe en los sistemas operativos mas populares: Todos los UNIX compatibles con POSIX, Microsoft Windows y MacOSX entre otros. Y lo mejor es que se integra con el ambiente, es decir, un programa se verá como se ven los demás programas en unix, pero se verá como los programas de windows en Windows, lo que evita confusiones por parte de los usuarios. Y sobre todo, se pueden escribir programas usando GTK+ sin tener que cambiar lineas o crear nuevas interfaces para cada sistema operativo en el que se piense correr la aplicación.

 

Fuente:

INSTITUTO DE ESTUDIOS SUPERIORES DE POZA RICA
Ingeniería en Sistemas Computacionales
Tesis:
Desarrollo de aplicaciones con Python, PyGTK y Glade
Por Marco Antonio Islas Cruz