GTK

[6]​ GTK está escrito en lenguaje C, y es principalmente desarrollado por el Proyecto GNOME,[7]​ ya que en 1997 este proyecto escoge GTK como base sobre la cual desarrollar el entorno de escritorio GNOME.

[8]​ Otras aplicaciones gráficas no directamente relacionadas con GNOME también han empleado GTK.

[10]​ GNOME incorpora estándares y programas de freedesktop.org para interactuar mejor con otros escritorios.

Este último permite que GTK se ejecute de forma idéntica en plataformas en Windows, X Window System, macOS , entre otros.

Además, se admiten múltiples backends GDK simultáneamente dentro de la misma biblioteca.

El nuevo elemento de control GtkGLArea también permitió integrar objetos 3D directamente en las interfaces del programa.

[20]​[21]​ Desde GTK 3.18 (base de Gnome 3.18), la biblioteca es oficialmente compatible con Wayland, el sucesor del sistema X Windows.

Mientras que GTK 3.22 se presenta como una versión LTS y añade soporte a portales Flatpak para instalaciones de software simples.

[33]​ Estas bibliotecas se desarrollan todas bajo un mismo repositorio de Git, denominado glib.

Maneja widgets como ventanas, botones, menús, etiquetas, deslizadores, pestañas, etc.

Biblioteca para crear interfaces con características de una gran accesibilidad muy importante para personas discapacitadas o minusválidos.

Biblioteca para el diseño y renderizado de texto, hace hincapié especialmente en la internacionalización.

Es independiente del lenguaje de programación y predeterminadamente no genera código fuente sino un archivo XML gracias a GTKBuilder, que puede ser usado en numerosos lenguajes de programación incluyendo C, C++, C#, Vala, Java, Perl, Python.

Glade puede ser utilizado de manera directa, pero también está totalmente integrado en Anjuta 2.

Ha sido criticado por ser más difícil de trabajar que Qt Designer y Microsoft Visual Studio Windows Forms Editor cuando el programador aún no tiene un diseño concreto en mente.

Si las bibliotecas que requiere el programa están instaladas, un programa GTK puede ser ejecutado por encima de otros entornos basadas en X11 como KDE o cualquier otro entorno, lo que incluye Mac OS X, si X11.app está instalado.

GTK también puede ejecutarse en Microsoft Windows, es utilizado por algunas aplicaciones populares multiplataforma como Pidgin y GIMP.

Dado que GTK es una biblioteca C pura, se puede vincular fácilmente a muchos otros lenguajes de programación.

Un programa típico de Hello World que se muestra en la imagen podría verse así: Para compilar este código son necesarias algunas dependencias según el sistema que poseas, en caso de usar Debian o derivadas sudo apt-get install libgtk-3-dev o en caso de usar Fedora sudo dnf install gtk3-devel clutter-devel webkit2gtk3-devel libgda-devel gobject-introspection-devel.

[36]​ Para compilar el código, es necesario ubicarse en la ruta del archivo y escribir lo siguiente en una terminal Para ejecutar el archivo, se escribe Para abrir este código son necesarias algunas dependencias según el sistema que poseas,[37]​ en caso de usar Debian o derivadas sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0 o en caso de usar Fedora sudo dnf install python3-gobject gtk3.

Estos temas pueden ser descargados de diferentes sitios como GNOME Look.

Esto fue expresado en una carta abierta por los desarrolladores de las aplicaciones GNOME, donde invitaban a usar el tema predeterminado (es decir Adwaita), ya que aseguraban que hacer uso de otros temas podría traer diferencias en la percepción del usuario final, en un mismo programa.

[39]​ Es el tema oficial de Ubuntu, posee diferentes tonalidades las cuales puede elegir el usuario.

[42]​ Del mismo modo, los cambios recientes en la temática están destinados específicamente a mejorar y estabilizar esa parte de la API, lo que significa que alguna inversión ahora debería recompensarse más adelante.

Logo antiguo
Ejemplo de interfaz en GTK 4
The GTK toolkit
Arquitectura de software simplificada de GTK. Pango, GDK, ATK, GIO, Cairo y GLib
GDK contiene back-end para X11, Wayland, Broadway (HTTP), Quartz y GDI y se basa en Cairo para la representación. Su nuevo SceneGraph es un trabajo en progreso.
Diseño de un diálogo de preferencias en Glade
Interfaz de Monodevelop 5.4
Un hola mundo en GTK para Wikipedia
Ejemplo de Adwaita
Ejemplo de Yaru