fbpx
Wikipedia

GTK

GTK (conocido hasta febrero de 2019 como GTK+)[1][2]​ o The GIMP Toolkit[3][4]:3 es una biblioteca de componentes gráficos multiplataforma para desarrollar interfaces gráficas de usuario (GUI).[5][4]:3 Esta licenciado bajo los términos de la GNU LGPL,[5]​ por lo que permite la creación de tanto software libre como software privativo. GTK es parte del proyecto GNU,[5]​ siendo usado por proyectos tan importantes como GIMP, Inkscape, GNOME, Xfce, entre otros.

GTK

gtk3-widget-factory, es una colección de ejemplos que demuestran muchos de los widgets GUI en GTK 3
Información general
Tipo de programa Biblioteca de desarrollo
Autor Spencer Kimball, Peter Mattis, Josh MacDonald
Desarrollador Proyecto GNOME
Lanzamiento inicial 14 de abril de 1998
Licencia LGPLv2.1+
Estado actual Activo
Idiomas Multilingüe
Información técnica
Programado en C
Plataformas admitidas Multiplataforma
Versiones
Última versión estable 4.6 (info) ( 30 de diciembre de 2021 (4 meses y 7 días))
Última versión en pruebas 3.2220 de septiembre de 2016
Enlaces
Sitio web oficial
Repositorio de código

Junto a Qt, es uno de los kit de herramientas de widgets más popular para el sistema operativo GNU/Linux, teniendo un amplio soporte para Wayland y XOrg. Además, se puede emplear para desarrollar aplicaciones gráficas que funcionen sobre otros sistemas Unix-like o sistemas operativos como Microsoft Windows, Mac OS, entre otros.

Historia y Desarrollo

Fue desarrollada inicialmente por Peter Mattis, Spencer Kimball y Josh MacDonald[3][4]:3 para implementar la interfaz gráfica del programa de Manipulación de Imágenes de GNU (GIMP) como reemplazo del kit de herramientas Motif; en algún momento Peter Mattis se desencantó con Motif y comenzó a escribir su propio kit de herramientas GUI llamado GIMP toolkit, reemplazando con éxito Motif para la versión 0.60 de GIMP. Finalmente, GTK fue reescrito para ser orientado a objetos y pasó a llamarse GTK+, haciéndose uso de esto por primera vez en la versión 0.99 de GIMP. Siendo la primera versión estable de GTK lanzada el 14 de abril de 1998.[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. Además de otros entornos gráficos para Linux como XFCE y ROX han elegido también GTK como su biblioteca de componentes gráficos.

El desarrollo de GTK se maneja libremente. La discusión ocurre principalmente en varias listas de correo públicas.[9]​ Los desarrolladores y usuarios de GNOME se reúnen en una reunión anual GNOME Users And Developers European Conference GUADEC para discutir el estado actual y la dirección futura de GNOME.[10]​ GNOME incorpora estándares y programas de freedesktop.org para interactuar mejor con otros escritorios.

GTK+ 1

 
Logo antiguo

Esta biblioteca contenía algunas rutinas de ayuda para resolver tareas básicas de programación, como el almacenamiento de diversos datos. Estos requieren mucho tiempo para el programador, especialmente cuando se trata del desarrollo repetido de programas. Las primeras versiones de GTK incluían estructuras de datos para listas vinculadas, árboles binarios o cadenas "en crecimiento". Además, ya que fue reescrito para ser orientado a objetos, GTK permite usar este paradigma de programación dentro del lenguaje C. Estas herramientas también resultaron útiles para programas sin una interfaz gráfica de usuario y por lo tanto más tarde se trasladaron a una biblioteca separada, llamada biblioteca GLib de funciones C . El sistema orientado a objetos en la siguiente versión se relevo a la biblioteca GObject, los métodos de dibujo orientados al sistema a la biblioteca GDK (GTK + Kit de dibujo). Este último permite que GTK se ejecute de forma idéntica en plataformas en Windows, X Window System, macOS , entre otros.

GTK+ 2

La versión GTK 2 recibió nuevas funciones mejoradas para renderizar texto usando la biblioteca Pango, la creación de GObject, un nuevo motor de temas, una API más flexible y una biblioteca novedosa (ATK) para mejorar la accesibilidad del kit de herramientas para personas discapacitadas, por ejemplo, se puede abordar el software de lectura, las herramientas de aumento y los dispositivos de entrada alternativos. GTK 2 no es compatible con GTK 1, por lo que las aplicaciones existentes tuvieron que ser portadas.

A partir de la versión 2.8, GTK + usa la biblioteca Cairo basada en vectores, que usa aceleración de hardware para renderizar si es posible. GTK 2.24 es la última versión de la serie 2.x.

GTK 3

La versión 3.0 fue lanzada el 10 de febrero de 2011.[11]​ Muchas funciones que se clasificaron como obsoletas se han eliminado y se han mejorado las interfaces existentes. GTK 3 no es compatible con versiones anteriores de GTK 2.x. Sin embargo, las bibliotecas de ambas versiones se pueden instalar en paralelo.

La serie GTK 3 incluye una nueva interfaz para dibujar widgets, que ahora está completamente basada en Cairo, un motor de temas basado en CSS que también permite transiciones de estado animadas, opciones de diseño mejoradas, un nuevo widget de interruptor deslizante, una clase de aplicación, soporte para múltiples dispositivos señaladores (punteros múltiples) e iconos simbólicos eso puede cambiar de color según la condición. Las estructuras internas se han separado y ocultado de la interfaz pública, por lo que será más fácil realizar cambios en el futuro sin tener que romper la interfaz. Además, se admiten múltiples backends GDK simultáneamente dentro de la misma biblioteca.[12]​ Hasta ahora, varias bibliotecas eran necesarias.

Se introdujeron dos nuevos backends: uno para el servidor de visualización Wayland y un back-end HTML5 llamado Broadway, con el que las aplicaciones GTK pueden operarse de forma remota en el navegador a través de la red.[13]​ Se admite el desplazamiento múltiple y suave, que también está disponible para Windows,[14]​ además, se admite animaciones CSS y difuminación de sombras. La versión 3.6.4 es la última versión oficial para Windows de 32 bits y 64 bits.[15]

Existen más cambios como la mejora de la visualización de los monitores de alta resolución.[16]​ La presentación de Popover (burbujas de discurso cómicas que se pueden usar como ayuda),[17]​ se admite gestos multitáctiles.[18][19]​ Además, se admite la representación de ventanas a través de OpenGL. 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.[22]​ GTK 3.20 integra el corrector ortográfico con gspell y mejora la temática CSS. Mientras que GTK 3.22 se presenta como una versión LTS y añade soporte a portales Flatpak para instalaciones de software simples.[23]

El 1 de septiembre de 2016, una publicación en el blog de desarrollo de GTK denotó, entre otras cosas, el futuro esquema de numeración de GTK.[24]​ La versión 3.22 de GTK de otoño de 2016 será la última versión 3.x (o al menos eso era lo planeado).[25]​ Después de eso, todos los recursos se trasladarán a la serie de desarrollo GTK 4 con los nombres de versión 3.90, 3.92, etc. Incluso cuando la serie 4.x entre en desarrollo, las aplicaciones notables aún usan GTK 2.x y no se han portado a 3.22. Con respecto al futuro del software heredado que usa GTK, no existe un proyecto colectivo para portar el software GTK 2.x a 3.22.

GTK 4.0 se está preparando con la serie inestable 3.9x. En marzo de 2017, se agregó el Scene Graph Kit (GSK) con la versión 3.90 . Implementa un gráfico de escena y se encarga de la síntesis de imágenes. En febrero de 2019 se anunció que GTK 4.0 eliminará el signo más ("+") de la parte del nombre.[1]

GTK 4

Ejemplo de interfaz en GTK 4

Una de las principales novedades implementadas durante el ciclo de desarrollo de GTK 4 (es decir, GTK 3.92, etc.) ha sido la delegación de funcionalidad a objetos auxiliares en lugar de codificarla en las clases base proporcionadas por GTK.

  • El manejo de eventos desde los controladores de señales descritos por GtkWidget se delega a los controladores de eventos
  • La representación se delega a los objetos GtkSnapshot
  • El mecanismo de diseño de GtkWidget se delega a GtkLayoutManager

En el 26 de enero de 2018 en DevConf.cz, Matthias Clasen ofreció una visión general del estado actual del desarrollo de GTK 4, incluida una explicación de alto nivel sobre cómo funcionaba el renderizado y la entrada en GTK 3, qué cambios se estaban realizando en GTK 4, y las razones de esos cambios. También se dieron ejemplos de cosas que se han hecho posibles con GTK 4.[26]

Soporte

Windows

  • De acuerdo con GTK 2.24.10 y 3.6.4, se detuvo el desarrollo de Windows con el instalador en Gnome. Se recomienda instalar el sistema de paquetes MSYS2 de Gnome en Windows.
  • GTK 2.24.10 y 3.6.4 todavía están disponibles en la red, sin embargo, en comparación con las versiones actuales en Linux, están mucho más afectados por los errores.[27][28]
  • Para Windows de 64 bits (a partir de junio de 2018), el trabajo de Tom Schoonjans 2.24.32 (actual como Linux) y 3.22.30 (actual como Linux) ya está disponible.[29]
  • Con Windows 10 Fall Creators Update, GTK 3 ahora también está disponible en WSL. Las instrucciones para instalar programas con Windows están disponibles en la comunidad GTK.[30]​ Con distribuciones de Linux como Ubuntu o Debian disponibles en la Tienda Windows y un servidor X como Xming o VcXsvr, miles de programas como GTK 2 o 3 pueden ejecutarse con X o soporte de terminal.

macOS

Sobre el backend Quartz,[31]​ un puerto del sistema X Window, GTK puede usarse en macOS .

Automatización de compilación

Anteriormente, GTK (y GNOME, GLib, etc.) utilizaban el sistema de compilación GNU (denominado Autotools) como el sistema de automatización de compilación elegido.

Desde el 14 de agosto de 2017, la rama maestra de GTK compila con Meson, y los archivos del sistema de compilación de Autotools se han eliminado.[32]

Bibliotecas de GTK

GTK se basa en varias bibliotecas desarrolladas por el equipo de GTK y de GNOME:

GLib

 
Arquitectura de software simplificada de GTK. Pango, GDK, ATK, GIO, Cairo y GLib

Es un conjunto de bibliotecas de bajo nivel, que comprende, GLib Core, GObject y GIO.[33]​ Estas bibliotecas se desarrollan todas bajo un mismo repositorio de Git, denominado glib. Por lo que "GLib" puede referirse a "GLib core" o todo el conjunto de bibliotecas.

GLib core

GLib core proporciona el manejo de estructura de datos para C (Listas enlazadas, árboles, tablas hash, entre otras), envoltorios de portabilidad, bucle de eventos, subprocesos, carga dinámica de módulos y muchas más funciones.

GObject

GObject por su parte, simplifica los paradigmas de Programación orientada a objetos y la Arquitectura dirigida por eventos para C. La Arquitectura dirigida por eventos no solo es útil para interfaces gráficas de usuario sino también para demonios que respondan a cambios de hardware (insertar un USB, un monitor, etc), software de red u otros procesos, puede llegar a ser de bastante utilidad.

GIO

GIO depende de las anteriores bibliotecas del conjunto, este proporciona un API de alto nivel para entrada y salida, ya sea la lectura de un archivo local, una secuencia de red, procesos de comunicación con D-Bus y muchos usos más.

Este conjunto de bibliotecas permite escribir servicios del sistema operativo, bibliotecas, utilidades de línea de comando y mucho más. Por lo que puede llegar a ser más cómodo y recomendable escribir un programa en C haciendo uso de GLib, además, ofrece una API de alto nivel como el estándar POSIX.

GTK

 
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.

Biblioteca que contiene un kit de herramientas de widgets basados en GLib, este kit realmente contiene los objetos y funciones para crear la Interfaz gráfica de usuario (GUI). Maneja widgets como ventanas, botones, menús, etiquetas, deslizadores, pestañas, etc.

GDK

Biblioteca que actúa como intermediario entre gráficos de bajo nivel y gráficos de alto nivel. De manera que libera a GTK de preocupaciones de bajo nivel como la recopilación de entrada, arrastrar y soltar y la conversión de formato de píxeles. GDK es una capa intermedia que separa GTK de los detalles del sistema de ventanas.

GDK es una parte importante de la portabilidad de GTK. Dado que GLib ya proporciona la funcionalidad multiplataforma de bajo nivel, todo lo que se necesita para hacer que GTK se ejecute en otras plataformas es portar GDK a la capa de gráficos del sistema operativo subyacente. Por lo tanto, los puertos GDK a la API de Windows y Quartz son los que permiten que las aplicaciones GTK se ejecuten en Windows y macOS, respectivamente.

ATK

Biblioteca para crear interfaces con características de una gran accesibilidad muy importante para personas discapacitadas o minusválidos. Pueden usarse utilerías como lupas de aumento, lectores de pantalla, o entradas de datos alternativas al clásico teclado o ratón.

Pango

Biblioteca para el diseño y renderizado de texto, hace hincapié especialmente en la internacionalización. Está diseñado de forma modular, esto significa que Pango puede ser usado por aplicaciones de diferentes arquitecturas o metodologías de programación. Además, es el núcleo para manejar las fuentes y el texto de la versión 2 de GTK.

Cairo

Biblioteca de renderizado avanzado de controles de aplicación. usada para proporcionar imágenes basadas en gráficos vectoriales. Además, proporciona primitivas para el dibujo bidimensional a través de una serie de backends diferentes.

Diseñadores de interfaces gráficas (GUI)

Algunos de los programas para diseño de interfaces gráficas con GTK son los siguientes:

Glade

 
Diseño de un diálogo de preferencias en Glade

Es una herramienta de desarrollo visual de interfaces gráficas mediante GTK/GNOME. 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. La posibilidad de generar automáticamente código fuente fue descontinuada desde la versión 3 de Glade.

De manera más técnica la clase describe la interfaz en un archivo de Lenguaje de marcado extensible (XML) y luego carga la descripción XML en tiempo de ejecución y crea los objetos automáticamente. Glade Interface Designer permite la creación de la interfaz de usuario de manera WYSIWYG. Por lo que la descripción de la interfaz de usuario es independiente del lenguaje de programación utilizado.

Glade puede ser utilizado de manera directa, pero también está totalmente integrado en Anjuta 2. El proyecto se encuentra bajo la licencia GPL.

Stetic

 
Interfaz de Monodevelop 5.4

Parte de MonoDevelop, orientado al trabajo con GTK#, Stetic es muy similar a Glade Interface Designer, pero está integrado en MonoDevelop con funciones como arrastrar y soltar . 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.

MonoDevelop puede ejecutarse en las distintas distribuciones de Linux y en Mac. Desde la versión 2.2, MonoDevelop ya cuenta con soporte completo para GNU/Linux, Windows y Mac. Además, incluye un compilador que admite C # 1.0, C # 2.0, C # 3.0, C # 4.0, C # 5.0 y C # 6.0.

Uso

Aplicaciones

Algunas aplicaciones que usan GTK para desarrollar sus interfaces de usuario incluyen:

Entornos que utilizan GTK

Activos

  • GNOME, está basado en GTK 3, junto a los programas del entorno
  • Xfce, está basado en GTK 3
  • Cinnamon, una bifurcación de GNOME 3 que usa GTK 3
  • MATE, una bifurcación de GNOME 2 y utiliza GTK 3 desde la versión 1.18
  • Pantheon, usa GTK 3 exclusivamente, desarrollado por Elementary OS
  • Budgie construido desde cero para el sucesor de SolusOS, el sistema operativo Solus
  • Sugar un entorno de escritorio para la educación primaria juvenil, que utiliza GTK, especialmente PyGTK
  • Phosh, una interfaz de usuario móvil diseñada para PureOS
  • One Laptop Per Child usa GTK y PyGTK
  • Maemo (Nokia's Internet-tablet framework)

Inactivos

  • Unity , el antiguo entorno de escritorio predeterminado de Ubuntu
  • LXDE, está basado en GTK, significa "Lightweight X11 Desktop Environment"
  • ROX Desktop un escritorio ligero, con características de la GUI de RISC OS
  • GPE Palmtop Environment
  • Access Linux Platform (sucesor de la plataforma Palm OS PDA)

Los entornos de escritorio no son necesarios para ejecutar los programas GTK. 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. wxWidgets, un toolkit gráfico multiplataforma usa GTK en sistemas tipo Unix.[34]​ Algunos de los ports más inusuales incluyen directfb y ncurses.

Gestor de ventanas

  • IceWM
  • Marco
  • Metacity
  • Muffin
  • Mutter
  • Sawfish
  • Xfwm

Implementaciones disponibles

Dado que GTK es una biblioteca C pura, se puede vincular fácilmente a muchos otros lenguajes de programación. Con los lenguajes de programación orientados a objetos, los GObjects no se usan ; los objetos GTK generalmente se pueden usar allí como objetos nativos del lenguaje de programación. El lenguaje de programación Vala utiliza GObject directamente como un sistema de objetos y, por lo tanto, no requiere una biblioteca en tiempo de ejecución para la conexión del lenguaje.

Existe una gran variedad de lenguajes de programación con los cuales se puede usar GTK,[35]​ aunque no en todos está disponible en su última versión. Entre los más usados están los siguientes:

Lenguaje Nombre Soporte Licencia Ejemplos
V2 V3 V4 Oficial
C GTK LGPL-2.1 Archivos, GIMP
C++ gtkmm LGPL-2.1 Inkscape
C# Gtk sharp Parcial Desconocido LGPL-2.1 MonoDevelop, Pinta
D Gtkd No LGPL-3
Genie Genie LGPL-2.1
Go Gotk3 No Desconocido No GPL-3
Java java-gnome Desconocido GPL-2
Javascript Gjs MIT
Seed LGPL-2.1
Julia Gtk.jl Desconocido No MIT
Perl gtk2-perl LGPL-2.1
Python PyGObject LGPL-2.1 Pitivi
Rust Gtk-rs No MIT Fractal, Shortwave, Pika Backup
Vala Vala LGPL-2.1 Cajas, Shotwell

Ejemplos

La forma clásica de programar con GTK es definir primero las propiedades de los elementos gráficos utilizados, luego agruparlos y vincularlos a rutinas específicas de manejo de eventos (un posible evento sería hacer clic en un botón , por ejemplo ). Sin embargo, también hay herramientas de diseño gráfico para superficies GTK como Glade o Stetic contenidas en MonoDevelop , que pueden ahorrarle los dos primeros pasos, expandir GTK con capacidades de creación de prototipos y hacer posible realizar cambios en la superficie de un programa sin tener que hacer cambios en el código fuente del software.

C

 
Un hola mundo en GTK para Wikipedia

Un programa típico de Hello World que se muestra en la imagen podría verse así:

// Incluir gtk #include <gtk/gtk.h> static void on_activate (GtkApplication *app) {  // Crear una nueva ventana  GtkWidget *window = gtk_application_window_new (app);  // Crear un nuevo boton  GtkWidget *button = gtk_button_new_with_label ("¡Hola Wikipedia!");  // Cuando se hace clic en el botón, destruye la ventana pasada como un argumento  g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window);  gtk_container_add (GTK_CONTAINER (window), button);  gtk_widget_show_all (window); } int main (int argc, char *argv[]) {  // Crear una nueva aplicación  GtkApplication *app = gtk_application_new ("com.example.GtkApplication",  G_APPLICATION_FLAGS_NONE);  g_signal_connect (app, "activate", G_CALLBACK (on_activate), NULL);  return g_application_run (G_APPLICATION (app), argc, argv); } 

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

gcc ejemplogtk.c -o ejemplogtk `pkg-config --cflags --libs gtk+-3.0` 

Para ejecutar el archivo, se escribe

./ejemplogtk 

Python

import gi gi.require_version("Gtk", "3.0") from gi.repository import Gtk window = Gtk.Window(title="¡Hola Wikipedia!") window.show() window.connect("destroy", Gtk.main_quit) Gtk.main() 

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.

Para ejecutar el archivo, es necesario ubicarse en la ruta del archivo, luego ejecutarlo escribiendo

python3 hello.py 

Estilo gráfico

La apariencia de GTK es en gran medida configurable por el usuario, existiendo una gran cantidad de temas para elegir. Estos temas pueden ser descargados de diferentes sitios como GNOME Look. Los siguiente son los más populares:

Adwaita

 
Ejemplo de Adwaita

Es el nuevo tema estándar de GTK desde mediados de 2014, siendo el tema sobre el que se recomienda trabajar para realizar desarrollos en interfaces gráficas. 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.[38]

Afirmando que al alterar las hojas de estilo GTK las aplicaciones podrían parecer dañadas o inutilizables, los iconos podrían representar conceptos diferentes al pensado por el programador. También aseguraban que las capturas encontradas dentro de tiendas de software podrían engañar al usuario de la apariencia de la aplicación, y además, que podría llegar a generar conflictos en la compresión de la documentación para el usuario final.

Esta propuesta fue aceptada por diferente distribuciones, las cuales adoptaron directamente Adwaita, o basaron sus temas sobre este, como es el caso de Ubuntu con su tema Yaru.[39]

Yaru

 
Ejemplo de Yaru

Es el tema oficial de Ubuntu, posee diferentes tonalidades las cuales puede elegir el usuario. El tema se basa en Adwaita.

Crítica

La crítica más común de GTK es la falta de compatibilidad con versiones anteriores en las principales actualizaciones, sobre todo en la interfaz de programación de aplicaciones (API)[40]​ y temas.[41]

Benjamin Otte explicó que las interrupciones de compatibilidad entre lanzamientos menores durante el ciclo de desarrollo de GTK 3.x se debieron a fuertes presiones para innovar, como proporcionar las características que los usuarios modernos esperan y apoyar el protocolo de servidor de pantalla Wayland cada vez más influyente. Con el lanzamiento de GTK 4, se habrá liberado la presión de la necesidad de innovar y el equilibrio entre estabilidad e innovación se inclinará hacia la estabilidad.[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.

  • Dirk Hohndel, desarrollador de código de Subsurface y miembro del Centro de Tecnología de Código Abierto de Intel, criticó a los desarrolladores de GTK por ser abrasivos e ignorar la mayoría de las solicitudes de la comunidad.[43]
  • Hong Jen Yee, desarrollador de LXDE (cuya versión GTK se eliminará y todos los esfuerzos se centraron en el puerto Qt),[44]​ expresó su desdén por la versión 3 de los cambios radicales de API del kit de herramientas GTK y el mayor uso de memoria, y portó el archivo PCMan File Manager (PCManFM) a Qt. PCManFM se está desarrollando con un GTK y con un backend Qt al mismo tiempo.[45]
  • El reproductor de música Audacious se mudó a Qt en la versión 3.6.[46]​ Las razones indicadas por los desarrolladores para esto incluyen una transición a las decoraciones de ventanas del lado del cliente, que según ellos hacen que la aplicación se vea " GNOME -y y fuera de lugar".[47]
  • Wireshark ha cambiado a Qt debido a que no tiene una buena experiencia con el soporte multiplataforma de GTK.[48]

Historial de lanzamientos

Resumen de lanzamientos
Lanzamiento Versión inicial Mejoras importantes Última versión menor
GTK+ 1
Versión antigua, sin servicio técnico: 1.0 13 de abril de 1998[49] Primera versión estable 1.0.6
Versión antigua, sin servicio técnico: 1.2 25 de febrero de 1999[50] Nuevos widgets:
  • GtkFontSelector
  • GtkPacker
  • GtkItemFactory
  • GtkCTree
  • GtkInvisible
  • GtkCalendar
  • GtkLayout
  • GtkPlug
  • GtkSocket
1.2.10
Leyenda:
Versión antigua
Versión antigua, con soporte técnico
Última versión
Última versión previa
Lanzamiento futuro
GTK+ 2
Versión antigua, sin servicio técnico: 2.0 11 de marzo de 2002[51] GObject

Soporte general para UTF-8

2.0.9
Versión antigua, sin servicio técnico: 2.2 22 de diciembre de 2002[52] Soporte de múltiples cabeceras. 2.2.4
Versión antigua, sin servicio técnico: 2.4 16 de marzo de 2004[53] Nuevos widgets:
  • GtkFileChooser
  • GtkComboBox
  • GtkComboBoxEntry
  • GtkExpander
  • GtkFontButton
  • GtkColorButton
2.4.14
Versión antigua, sin servicio técnico: 2.6 16 de diciembre de 2004[54] Nuevos widgets:
  • GtkIconView
  • GtkAboutDialog
  • GtkCellView

El último en admitir Windows 98/Me

2.6.10
Versión antigua, sin servicio técnico: 2.8 13 de agosto de 2005[55] La mayoría de los widgets son renderizados por Cairo 2.8.20
Versión antigua, sin servicio técnico: 2.10 3 de julio de 2006[56] Nuevos widgets:
  • GtkStatusIcon
  • GtkAssistant
  • GtkLinkButton
  • GtkRecentChooser

Soporte de impresión: GtkPrintOperation

2.10.14
Versión antigua, sin servicio técnico: 2.12 14 de septiembre de 2007[57] GtkBuilder 2.12.12
Versión antigua, sin servicio técnico: 2.14 4 de septiembre de 2008[58] soporte de carga de JPEG 2000 2.14.7
Versión antigua, sin servicio técnico: 2.16 13 de marzo de 2009[59] Nuevo widget: GtkOrientable

Advertencia de bloqueo de mayúsculas en la entrada de contraseña

Mejoras en GtkScale, GtkStatusIcon, GtkFileChooser

2.16.6
Versión antigua, sin servicio técnico: 2.18 23 de septiembre de 2009[60] Nuevo widget: GtkInfoBar

Mejora en el selector de archivos, impresión

Para eliminar gran parte del IPC necesario entre la aplicación X11 y el servidor X11, GDK se reescribe (principalmente por Alexander Larsson) para usar "ventanas del lado del cliente", es decir, la ventana GdkWindow, que cada widget debe tener, pertenece ahora al cliente

2.18.9
Versión antigua, sin servicio técnico: 2.20 23 de marzo de 2010[61] Nuevos widgets:
  • GtkSpinner
  • GtkToolPalette
  • GtkOffscreenWindow

Mejora en el selector de archivos, manejo del teclado, GDK

Los datos de introspección ahora se incluyen en GTK

2.20.1
Versión antigua, sin servicio técnico: 2.22 23 de septiembre de 2010[62] GdkPixbuf se movió a un módulo separado

La mayoría de los dibujos de GDK se basan en Cairo

Muchos datos internos ahora son privados y se pueden sellar en preparación para GTK 3

2.22.1
Versión antigua, con servicio técnico: 2.24 30 de enero de 2011[63] Nuevo widget: GtkComboBoxText

El backend de impresión CUPS puede enviar trabajos de impresión como PDF

GtkBuilder ha obtenido soporte para etiquetas de texto y botones de herramientas de menú y se agregaron muchas correcciones de anotación de introspección

Migración de GTK + 2.x a GTK + 3

2.24.32
(2018-01-08)
Leyenda:
Versión antigua
Versión antigua, con soporte técnico
Última versión
Última versión previa
Lanzamiento futuro
GTK 3
Versión antigua, sin servicio técnico: 3.0 10 de febrero de 2011[11] El desarrollo y diseño de la versión GTK 3 del kit de herramientas comenzó en febrero de 2009 durante el GTK Theming Hackfest celebrado en Dublín[64]
  • El primer borrador de la hoja de ruta para el desarrollo se publicó el 9 de abril de 2009[65]

Completado principalmente Proyecto Ridley

  • El intento de consolidar varias bibliotecas externas a GTK +
  • Incluyendo libgnome, libgnomeui, libgnomeprint22, libgnomeprintui22, libglade, libgnomecanvas, libegg, libeel, gtkglext, and libsexy[66]

Todo el renderizado se realiza usando Cairo

GDK se convirtió X11 agnóstico

XInput2, el tema API se basa en Hoja de estilos en cascada (CSS), lo que empeora el rendimiento alcanzable para 60 Hz fotogramas por segundos

3.0.12
Versión antigua, sin servicio técnico: 3.2 25 de septiembre de 2011[67] Nuevos widgets:
  • GtkLockButton
  • GtkOverlay

Nuevo cuadro de diálogo para selector de fuente

Nuevos backends experimentales:

3.2.4
Versión antigua, sin servicio técnico: 3.4 26 de marzo de 2012[68] Soporte de menú en GtkApplication

Un nuevo selector de color

Soporte agregado para dispositivos táctiles

Soporte agregado para desplazamiento suave

GtkScrolledWindow realizará desplazamiento cinético con dispositivos táctiles

Se ha mejorado la compatibilidad con macOS

Esta es la primera versión de GTK 3 que funciona bien en Windows

El backend de Wayland se actualiza a la versión actual de Wayland

Los botones de giro han recibido un nuevo aspecto

Accesibilidad: el soporte accesible con vista de árbol se reescribe

Más soporte completo de temas CSS

3.4.4
Versión antigua, sin servicio técnico: 3.6 24 de septiembre de 2012[69] Nuevos widgets:
  • GtkSearchEntry
  • GtkMenuButton
  • GtkLevelBar

Botones de giro vertical

Animaciones CSS, sombras borrosas

Soporte para desvanecimiento y transiciones en temas.

3.6.5
Versión antigua, sin servicio técnico: 3.8 25 de marzo de 2013[70] Soporte estable de Wayland 1.0

Soporte para el servidor broadwayd

Tematización mejorada

Mejor gestión de la geometría.

Mejoras táctiles

Soporte con el administrador de ventanas para el protocolo de sincronización de trama

GdkFrameClock agregado[71]

3.8.9
Versión antigua, sin servicio técnico: 3.10 23 de septiembre de 2013[72] Nuevos widgets:
  • GtkHeaderBar
  • GtkPlacesSidebar
  • GtkStack
  • GtkStackSwitcher
  • GtkRevealer
  • GtkSearchBar
  • GtkListBox

Soporte para Wayland 1.2

  • maximización
  • cursores animados
  • monitores múltiples
  • ajustes
  • superficies personalizadas
  • sincronización de trama

Adicional:

  • decoraciones del lado del cliente
  • soporte de salida a escala en pantallas de alta resolución
  • modo de ajuste fino para desplazamiento

Retirado:

  • soporte para el protocolo Motif DND
  • soporte para múltiples pantallas por pantalla
  • gdk_window_get_display
  • gtk_widget_push_composite_child

Elementos de menú desprendibles, además de muchas configuraciones GTK

TEl moderno modelo de dibujo GTK

3.10.9
Versión antigua, sin servicio técnico: 3.12 25 de marzo de 2014[73] Decoraciones del lado del cliente[74]

Soporte para Wayland 1.5

Nuevo widget: GtkPopover (una alternativa a los menús y cuadros de diálogo)

3.12.2
Versión antigua, sin servicio técnico: 3.14 22 de septiembre de 2014[75] Se introdujo GtkInspector (una copia de gtkparasite)[76][77]

Soporte mejorado para gestos / fusión multitáctil[78][79]

En desuso:[80]

  • GtkMisc
  • GtkAlignment
  • GtkArrow
  • GdkColor
  • Regiones de estilo
  • soporte para archivos .icon
  • gdk_window_flush
  • dibujar fuera de la pintura de inicio/fin

La mayoría de los widgets se convierten para usar gestos internamente

Wayland admite el modo clásico de GNOME Shell[81]

3.14.15
Versión antigua, sin servicio técnico: 3.16 22 de marzo de 2015[82] GDK admite renderizar ventanas usando OpenGL para X11 y Wayland usando libepoxy

Nuevos widgets:

  • GtkGLArea
  • GtkStackSidebar
  • GtkModelButton
  • GtkPopoverMenu

Desplazamiento revisado (barra de desplazamiento oculta por defecto)[83]

Experimental Mir backend[84]

3.16.7
Versión antigua, sin servicio técnico: 3.18 23 de septiembre de 2015[85] Agregar infraestructura de nodo CSS

Más actualización de diseño de filechooser y mejor búsqueda de filechooser

Soporte de Windows XP eliminado

Modelo de soporte para lista y cuadro de flujo

Desplazamiento cinético del panel táctil

Gestos del panel táctil (Wayland)

utilidad gtk-builder-tool

Ventanas solo de salida

3.18.9
Versión antigua, sin servicio técnico: 3.20 21 de marzo de 2016[86] Mayor integración de nodos CSS[87]

Mover arrastrar y soltar hacia GDK

Nuevo widget: GtkShortcutsWindow (muestra métodos abreviados de teclado y gestos de una aplicación)

3.20.10
Versión antigua, con servicio técnico: 3.22 21 de septiembre de 2016[88] Última versión 3.x[24]

WEl soporte para tabletas Wayland se fusionó,[89]​ el soporte para tabletas gráficas se considera completo[90]

GTK 3.22 será tan estable (y por lo tanto "aburrido") como GTK 2[91][92][93]

por 3 años
3.22.29
Versión estable actual: 3.24 3 de septiembre de 2018[25] Se suponía que 3.22 era la última versión de la serie GTK 3
  • 3.24 se lanzó principalmente para facilitar la migración de GTK + 3.x a GTK + 4

Golpes de dependencia: requieren:

  • libepoxy 1.4
  • pango 1.41

Nuevas características del selector de fuente:

  • permitir configurar características de fuente OpenType
  • mostrar ejemplos de características de fuente OpenType
  • permitir seleccionar variaciones de fuente OpenType
  • Niveles de soporte de detalles para la selección

Nuevas características de Emoji:

  • admite una ventana emergente de finalización para Emoji
  • soltar el atajo Ctrl-Shift-e

Otras API nuevas: gdk_window_move_to_rect

Wayland: usa memoria anónima compartida en FreeBSD

Controladores de eventos con respaldo de GTK 4:

  • GtkEventControllerScroll
  • GtkEventControllerMotion
  • GtkEventControllerKey
  • GtkGestureStylus

En desuso algunas API que se han ido en GTK 4:

  • cadenas de enfoque en GtkContainer
  • sensibilidad paso a paso en GtkRange
3.23.0
3.23.1
3.23.2
3.23.3
3.24.0
…3.24.5
3.24.14
Leyenda:
Versión antigua
Versión antigua, con soporte técnico
Última versión
Última versión previa
Lanzamiento futuro
Desarrollo de la serie GTK 4
Versión antigua, sin servicio técnico: 3.90 31 de marzo de 2017[94] GTK Scene Graph Kit (GSK) fusionado[95]

Eliminar cualquier API marcada como obsoleta

  • antes (22-09-2016) vs. después

Desarrollo pesado

Un nuevo renderizador de Vulkan aumenta el antiguo renderizador de Cairo[96]

3.89.1

3.89.2
3.89.4
3.89.5
3.90

Versión antigua, sin servicio técnico: 3.92 18 de octubre de 2018[97][98] Como GNOME 3.26 ya se lanzó el 13 de septiembre de 2017,[99]​ no estaba basado en GTK 3.92.

GNU autotools fue reemplazado por Meson.

3.91.0

3.91.1
3.91.2
3.92.1

Versión antigua, sin servicio técnico: 3.94 26 de junio de 2018[100] 3.93
  • GdkScreen, GdkVisual eliminado
  • GdkDeviceManager reemplazado por GdkSeat
  • El manejo del portapapeles se mueve de GTK a GDK
  • GdkEvent se convierte en un GObject opaco
  • el renderizador GL en GSK se ha completado sustancialmente, y ahora está a la par con el renderizador Vulkan
  • se reduce el uso de GdkPixbuf en las API
    • y el objeto GskTexture se mueve a GDK como GdkTexture, para tomar su lugar
  • El backend de Wayland ahora implementa el protocolo de decoración del lado del servidor KDE
  • Broadway es portado a GSK.

GdkWindow renombrado a GdkSurface

Nueva abstracción para contenido dibujable: GdkPaintable

Hay soporte para mostrar medios con:

  • GtkVideo
  • GtkMediaFile
  • GtkMediaStream
  • GtkMediaControls
3.93
3.94.0
Versión antigua, sin servicio técnico: 3.96 7 de mayo de 2019[101] El comando gtk4-builder-tool simplify ha obtenido una opción --3to4 para convertir GTK3 archivos ui a GTK4; aunque con menús AMTK, barras de herramientas u otros objetos como GtkShortcutsWindow se crean mediante programación (no con un archivo * .ui), sino con API convenientes.[102]

GtkWidget ahora puede usar un GtkLayoutManager para la asignación de tamaño

  • los administradores de diseño pueden usar opcionalmente hijos de diseño con propiedades de diseño
  • GtkBinLayout, GtkBoxLayout, GtkGridLayout, GtkFixedLayout y GtkCustomLayout están actualmente disponibles
  • Aparecerán más implementaciones de administrador de diseño en el futuro

El manejo del enfoque se ha reescrito y la generación de eventos de cambio de enfoque se ha unificado con eventos cruzados

Los eventos se han simplificado y solo se usan para la entrada:

  • los eventos de exposición han sido reemplazados por una señal GdkSurface::render
  • los eventos de configuración han sido reemplazados por una señal GdkSurface::size-changed
  • los eventos del mapa han sido reemplazados por una propiedad GdkSurface::mapped
  • gdk_event_handler_set ha sido reemplazado por una señal GdkSurface::event
  • los eventos clave ya no contienen una cadena
  • los eventos en widgets no asignados se ignoran
3.96.0
Versión antigua, sin servicio técnico: 3.98 10 de febrero de 2020[103]
  • Mejoras de rendimiento.
  • Refactorización de arrastrar y soltar
  • Moviendo GDK hacia Wayland
  • Remoción
    • GtkMenu, GtkToolbar y clases similares han sido reemplazadas por GMenu.
  • Adiciones
    • Selector de emoji
    • Los widgets de texto ahora tienen pilas de deshacer
    • Un nuevo gestor de diseño[104]
3.98.5
Versión antigua, sin servicio técnico: 3.99.0 31 de julio de 2020[105]
  • Herramientas de accesibilidad actualizadas
  • Encabezados actualizado para utilizar estándar C tipos INSTED de GLib
  • Nuevos widgets
  • Correcciones y mejoras
3.99.0
Versión estable actual: 4.0 16 de diciembre de 2020[106] Remoción de cualquier API marcada como obsoleta, es decir, al menos todo en el directorio obsoleto
Leyenda:
Versión antigua
Versión antigua, con soporte técnico
Última versión
Última versión previa
Lanzamiento futuro

Véase también

Referencias

  1. Bassi, Emmanuele (6 de febrero de 2019), «Project rename to "GTK"» (en en), lista de correo gtk-devel-list, https://mail.gnome.org/archives/gtk-devel-list/2019-February/msg00000.html, consultado el 18 de junio de 2019. 
  2. Corbet, Jonathan (8 de febrero de 2019). «GTK+ renamed to GTK». Linux Weekly News (en inglés). Consultado el 18 de junio de 2019. 
  3. «A Brief (and Ancient) History of GIMP». GNU Image Manipulation Program (en inglés). 1998. Consultado el 18 de junio de 2019. 
  4. Harlow, Eric. ([1999]). Desarrollo de aplicaciones Linux con GTK+ y GDK : guía avanzada. Prentice Hall. ISBN 84-8322-196-9. OCLC 433163271. Consultado el 6 de julio de 2020. 
  5. «What is GTK, and how can I use it?». The GTK Project (en inglés). Consultado el 18 de junio de 2019. 
  6. The GNOME Proyect. (en inglés). Archivado desde el original el 12 de agosto de 2014. Consultado el 4 de julio de 2020. 
  7. The GNOME Proyect. «GNOME Quick SWOT Analysis, april 2010» (en inglés). Consultado el 1 de julio de 2020. 
  8. de Icaza, Miguel (1 de febrero de 1999). «The GNOME Project». Linux Journal (en inglés). 
  9. The GNOME Proyect. «List Rules and FAQs» (en inglés). Consultado el 1 de julio de 2020. 
  10. The GNOME Proyect. «GUADEC2020» (en inglés). Consultado el 1 de julio de 2020. 
  11. Clasen, Mathias (10 de febrero de 2011), «GTK+ 3.0.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00020.html, consultado el 6 de julio de 2020. 
  12. Kristian Høgsberg (3 de enero de 2011). «Multiple backends for GTK+» (en inglés). Consultado el 4 de julio de 2020. 
  13. alexl (18 de abril de 2011). «Broadway update 3» (en inglés). Consultado el 4 de julio de 2020. 
  14. Thorsten Leemhuis (28 de marzo de 2012). «GTK+ 3.4 mit Multitouch- und Windows-Unterstützung» (en alemán). Consultado el 4 de julio de 2020. 
  15. Thorsten Leemhuis (25 de septiembre de 2012). «Neue Versionen von GTK+, GLib und Clutter» (en alemán). Consultado el 4 de julio de 2020. 
  16. Oliver Diedrich (24 de septiembre de 2013). «Gtk+ 3.10 mit verbesserter Wayland-Unterstützung» (en alemán). Consultado el 4 de julio de 2020. 
  17. Oliver Diedrich (27 de marzo de 2014). «Angesehen: Gnome 3.12» (en alemán). Consultado el 4 de julio de 2020. 
  18. Oliver Diedrich (2 de octubre de 2014). «Immer mehr Spiele für Linux» (en alemán). Consultado el 4 de julio de 2020. 
  19. Keywan Tonekaboni (4 de agosto de 2013). «GUADEC: Wayland-Support für Gnome» (en alemán). Consultado el 4 de julio de 2020. 
  20. The GNOME Project (2015). «Bienvenido a GNOME 3.16» (en inglés). Consultado el 4 de julio de 2020. 
  21. Thorsten Leemhuis (23 de marzo de 2015). «Linux-Desktop: Neues Gnome zeigt Nachrichten oben» (en alemán). Consultado el 4 de julio de 2020. 
  22. Rainald Menge-Sonnentag (22 de marzo de 2016). «GUI-Toolkit GTK+ 3.20 verbessert das CSS-Theming» (en alemán). Consultado el 4 de julio de 2020. 
  23. Rainald Menge-Sonnentag (20 de octibre de 2016). «GUI-Toolkit GTK+ 3.22 bringt Flatpak-Portale» (en alemán). Consultado el 4 de julio de 2020. 
  24. Allan (1 de septiembre de 2016). «Versioning and long term stability promise in GTK+». GTK Development Blog (en inglés). Consultado el 1 de julio de 2020. 
  25. Clasen, Mathias (3 de septiembre de 2018), «gtk+ 3.24.0», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/ftp-release-list/2018-September/msg00045.html, consultado el 6 de julio de 2020. 
  26. Clasen, Matthias (2018). «GTK+ 4 Status Update» (PDF). Fedora People (en inglés). Consultado el 6 de julio de 2020. 
  27. Alexander. «GTK+ for Windows Runtime Environment» (en inglés). Consultado el 4 de julio de 2020. 
  28. Tarnyko. «GTK+» (en inglés). Consultado el 4 de julio de 2020. 
  29. Tom Schoonjans. «GitHub - tschoonj/GTK-for-Windows-Runtime-Environment-Installer: GTK+ for Windows Runtime Environment Installer (fork from http://gtk-win.sourceforge.net)» (en inglés). Consultado el 4 de julio de 2020. 
  30. Frank (31 de enero de 2018). «Windows Subsystem for Linux: Installation des WSL und Konfiguration von Gnome unter Windows 10» (en alemán). Consultado el 4 de julio de 2020. 
  31. The GNOME Project. «Projects/GTK/OSX - GNOME Wiki!» (en inglés). Consultado el 4 de julio de 2020. 
  32. Bassi, Emmanuele (15 de agosto de 2017), «Build system change GTK's master branch» (en en), lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2017-August/msg00028.html, consultado el 1 de julio de 2020. 
  33. Wilmet, Sébastien (29 de marzo de 2019). «The GLib/GTK+ Development Platform». people.gnome.org (en inglés). Consultado el 1 de julio de 2020. 
  34. WxWidgets Compared To Other Toolkits «GTK+». 
  35. . Archivado desde el original el 13 de julio de 2011. Consultado el 3 de diciembre de 2014. 
  36. Felipe Borges, Gabe Ron. «Gtk+». Fedora Developer (en inglés). Consultado el 6 de julio de 2020. 
  37. PyGObject Team. «Getting Started - PyGObject». PyGObject (en inglés). Consultado el 10 de julio de 2020. 
  38. Desarrolladores de GNOME (2019). «Please don’t theme our apps». stopthemingmy (en inglés). Consultado el 12 de septiembre de 2020. 
  39. Medina, Eduardo (27 de agosto de 2019). «El tema Yaru de Ubuntu se basará en Adwaita para evitar la fragmentación». MuyLinux. Consultado el 12 de septiembre de 2020. 
  40. Morten Welinder (23 de junio de 2014). «How Does One Create A Gtk+ Application?». blogs.gnome.org (en inglés). Consultado el 1 de julio de 2020. 
  41. MCLASEN (20 de noviembre de 2015). «A GTK+ UPDATE». blogs.gnome.org (en inglés). Consultado el 1 de julio de 2020. 
  42. GUADEC (22 de octubre de 2013). «Index of /2013/GTK to infinity and beyond». http://videos.guadec.org/ (en inglés). Consultado el 1 de julio de 2020. 
  43. Michael Larabel (12 de enero de 2014). «The Biggest Problem With GTK & What Qt Does Good». phoronix (en inglés). Consultado el 1 de julio de 2020. 
  44. BROTHER (22 de julio de 2013). «“The future of Razor and LXDE-Qt”». blog.lxde.org (en inglés). Consultado el 1 de julio de 2020. 
  45. PCMAN (26 de marzo de 2013). «PCManFM Qt 0.1.0 released». blog.lxde.org (en inglés). Consultado el 1 de julio de 2020. 
  46. Audacious Developers (28 de febrero de 2015). «Audacious 3.6 released». https://audacious-media-player.org/ (en inglés). Consultado el 1 de julio de 2020. 
  47. John Lindgren (6 de abril de 2014). «Ugly window decorations and how to fix them (GTK+ 3.12)». redmine.audacious-media-player.org (en inglés). Consultado el 1 de julio de 2020. 
  48. «We’re switching to Qt.». blog.wireshark.org (en inglés). octubre de 2013. Consultado el 1 de julio de 2020. 
  49. Amundson, Shawn T. (13 de abril de 2020), «ANNOUNCE: GTK+ 1.0.0 Released!», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-list/1998-April/msg00303.html, consultado el 6 de julio de 2020. 
  50. Amundson, Shawn T. (25 de febrero de 1999), «ANNOUNCE: GTK+ and GLib 1.2.0 Released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-list/1999-February/msg00756.html, consultado el 6 de julio de 2020. 
  51. Taylor, Owen (11 de marzo de 2002), «GTK+-2.0.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-list/2002-March/msg00136.html, consultado el 6 de julio de 2020. 
  52. Taylor, Owen (22 de diciembre de 2002), «GTK+-2.2.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-list/2002-December/msg00206.html, consultado el 6 de julio de 2020. 
  53. Taylor, Owen (16 de marzo de 2004), «GTK+-2.4.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-list/2004-March/msg00111.html, consultado el 6 de julio de 2020. 
  54. Clasen, Mathias (16 de diciembre de 2004), «GTK+-2.6.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-list/2004-December/msg00155.html, consultado el 6 de julio de 2020. 
  55. Clasen, Mathias (13 de agosto de 2005), «GTK+ 2.8.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-list/2005-August/msg00124.html, consultado el 6 de julio de 2020. 
  56. Clasen, Mathias (3 de julio de 2006), «GTK+ 2.10 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2006-July/msg00004.html, consultado el 6 de julio de 2020. 
  57. Clasen, Mathias (14 de septiembre de 2007), «GTK+ 2.12 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2007-September/msg00052.html, consultado el 6 de julio de 2020. 
  58. Clasen, Mathias (4 de septiembre de 2008), «GTK+ 2.14.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2008-September/msg00024.html, consultado el 6 de julio de 2020. 
  59. Clasen, Mathias (13 de marzo de 2009), «GTK+ 2.16.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2009-March/msg00101.html, consultado el 6 de julio de 2020. 
  60. Clasen, Mathias (23 de septiembre de 2009), «GTK+ 2.18.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2009-September/msg00054.html, consultado el 6 de julio de 2020. 
  61. Clasen, Mathias (23 de marzo de 2010), «GTK+ 2.20.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00132.html, consultado el 6 de julio de 2020. 
  62. Clasen, Mathias (23 de septiembre de 2010), «GTK+ 2.22.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00263.html, consultado el 6 de julio de 2020. 
  63. Clasen, Mathias (20 de enero de 2011), «GTK+ 2.24.0», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2011-January/msg00042.html, consultado el 6 de julio de 2020. 
  64. «Gtk+ 3.0 Theming API Hackfest». Silicon Island. Consultado el 3 de junio de 2017. 
  65. «Gtk+ 3 roadmap draft». Consultado el 3 de junio de 2017. 
  66. «Attic/ProjectRidley - GNOME Wiki!». wiki.gnome.org. 
  67. Clasen, Mathias (25 de septiembre de 2011), «GTK+ 3.2.0», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2011-September/msg00175.html, consultado el 6 de julio de 2020. 
  68. Clasen, Mathias (26 de marzo de 2012), «GTK+ 3.4.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2012-March/msg00082.html, consultado el 6 de julio de 2020. 
  69. Clasen, Mathias (24 de septiembre de 2012), «GTK+ 3.6.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2012-September/msg00045.html, consultado el 6 de julio de 2020. 
  70. Clasen, Mathias (25 de marzo de 2013), «GTK+ 3.8.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2013-March/msg00108.html, consultado el 6 de julio de 2020. 
  71. «Frame clock: GDK 3 Reference Manual». developer.gnome.org. 
  72. Clasen, Mathias (23 de septiembre de 2013), «GTK+ 3.10.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2013-September/msg00057.html, consultado el 6 de julio de 2020. 
  73. Clasen, Mathias (25 de marzo de 2014), «GTK+ 3.12 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2014-March/msg00060.html, consultado el 6 de julio de 2020. 
  74. «Client-side decorations in themes | Goings on». 
  75. Clasen, Mathias (22 de septiembre de 2014), «GTK+ 3.14.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2014-September/msg00007.html, consultado el 6 de julio de 2020. 
  76. Matthias Clasen (15 de mayo de 2014). «GtkInspector Author's blog entry». Consultado el 17 de mayo de 2014. 
  77. «GtkInspector in GNOME wiki». 15 de mayo de 2014. Consultado el 17 de mayo de 2014. 
  78. «Merging gestures into 3.14». 23 de mayo de 2014. Consultado el 23 de mayo de 2014. 
  79. «RFC: gestures». 4 de abril de 2014. Consultado el 23 de mayo de 2014. 
  80. «gtk+ 3.13.2». 27 de mayo de 2014. 
  81. «gtk+ 3.13.3». 24 de junio de 2014. 
  82. Clasen, Mathias (22 de marzo de 2015), «GTK+ 3.16.0 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-devel-list/2015-March/msg00062.html, consultado el 6 de julio de 2020. 
  83. online, heise. «Linux-Desktop: Neues Gnome zeigt Nachrichten oben». heise online. Consultado el 3 de junio de 2017. 
  84. «GTK+ 3.16.0 released». mail.gnome.org. Consultado el 3 de junio de 2017. 
  85. Nestor, Marius (24 de septiembre de 2015). «GTK+ 3.18.0 Officially Released as Part of the GNOME 3.18 Desktop Environment». Softpedia. Consultado el 25 de mayo de 2019. 
  86. Clasen, Mathias (21 de marzo de 2016), «GTK+ 3.20», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-list/2016-March/msg00026.html, consultado el 6 de julio de 2020. 
  87. «GTK+ 3.20 – Style Classes and Element Names». 20 de noviembre de 2015. 
  88. Clasen, Mathias (21 de septiembre de 2016), «GTK+ 3.22 released», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/gtk-list/2016-September/msg00006.html, consultado el 6 de julio de 2020. 
  89. «GTK+ Wayland tablet support is merged – Carlos Garnacho». 
  90. «hutterer input». www.x.org. 
  91. «GUADEC2013: Benjamin Otte talks about GTK+». GUADEC. 
  92. «Gtk 4.0 will not be stable until Gtk 4.6». 13 de junio de 2016. 
  93. «Gtk 5.0 will not be stable until Gtk 5.6». 14 de junio de 2016. 
  94. Clasen, Mathias (31 de marzo de 2017), «gtk+ 3.90.0», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/ftp-release-list/2017-March/msg00243.html, consultado el 6 de julio de 2020. 
  95. «Projects/GTK/Roadmap - GNOME Wiki!». wiki.gnome.org. 
  96. «Commits · master · GNOME / gtk». GitLab. 
  97. Clasen, Mathias (18 de octubre de 2017), «gtk+ 3.92.1», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/ftp-release-list/2017-October/msg00117.html, consultado el 6 de julio de 2020. 
  98. Clasen, Mathias (23 de octubre de 2017). «GTK+ 3.92». GTK Development Blog. Consultado el 25 de mayo de 2019. 
  99. «GNOME 3.26 Released». 13 de septiembre de 2017. 
  100. Clasen, Mathias (26 de junio de 2018), «gtk+ 3.94.0», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/ftp-release-list/2018-June/msg00073.html, consultado el 6 de julio de 2020. 
  101. Clasen, Mathias (7 de mayo de 2019), «gtk 3.96», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/ftp-release-list/2019-May/msg00032.html, consultado el 6 de julio de 2020. 
  102. «Introducing amtk». 
  103. Clasen, Mathias (6 de junio de 2020), «gtk 3.98.5», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/ftp-release-list/2020-June/msg00024.html, consultado el 6 de julio de 2020. 
  104. Clasen, Matthias (13 de febrero de 2020). «GTK 3.98». GTK+ Development Blog (en inglés). Consultado el 18 de febrero de 2020. 
  105. Clasen, Mathias (31 de julio de 2020), «gtk 3.99.0», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/ftp-release-list/2020-July/msg00096.html, consultado el 28 de agosto de 2020. 
  106. Clasen, Mathias (16 de diciembre de 2020), «gtk 4.0.0», lista de correo GNOME Mail Services, https://mail.gnome.org/archives/ftp-release-list/2020-December/msg00029.html, consultado el 25 de diciembre de 2020. 

Enlaces externos

  • GTK.org (inglés)
  • Pango.org (inglés).
  • (inglés).
  • RubyGTK, bindings de GTK para Ruby. (inglés).
  • gtk-fortran, bindings de GTK para Fortran 2003. (inglés).
  • PyGObject, bindings de GTK para Python.
  • GTK#, bindings de GTK para Mono.
  • gtk2-perl, bindings de GTK para perl.
  • PHP-GTK, bindings de GTK para PHP.
  • Java-Gnome, bindings de GTK/Gnome para Java.
  • gtkmm, bindings de GTK para C++.
  • Roadmap (inglés).
  • Video tutorial: Calculadora con GTK (Español)
  •   Datos: Q189464
  •   Multimedia: GTK

conocido, hasta, febrero, 2019, como, gimp, toolkit, biblioteca, componentes, gráficos, multiplataforma, para, desarrollar, interfaces, gráficas, usuario, esta, licenciado, bajo, términos, lgpl, permite, creación, tanto, software, libre, como, software, privat. GTK conocido hasta febrero de 2019 como GTK 1 2 o The GIMP Toolkit 3 4 3 es una biblioteca de componentes graficos multiplataforma para desarrollar interfaces graficas de usuario GUI 5 4 3 Esta licenciado bajo los terminos de la GNU LGPL 5 por lo que permite la creacion de tanto software libre como software privativo GTK es parte del proyecto GNU 5 siendo usado por proyectos tan importantes como GIMP Inkscape GNOME Xfce entre otros GTKgtk3 widget factory es una coleccion de ejemplos que demuestran muchos de los widgets GUI en GTK 3Informacion generalTipo de programaBiblioteca de desarrolloAutorSpencer Kimball Peter Mattis Josh MacDonaldDesarrolladorProyecto GNOMELanzamiento inicial14 de abril de 1998LicenciaLGPLv2 1 Estado actualActivoIdiomasMultilingueInformacion tecnicaProgramado enCPlataformas admitidasMultiplataformaVersionesUltima version estable4 6 info 30 de diciembre de 2021 4 meses y 7 dias Ultima version en pruebas3 2220 de septiembre de 2016EnlacesSitio web oficial Repositorio de codigo editar datos en Wikidata Junto a Qt es uno de los kit de herramientas de widgets mas popular para el sistema operativo GNU Linux teniendo un amplio soporte para Wayland y XOrg Ademas se puede emplear para desarrollar aplicaciones graficas que funcionen sobre otros sistemas Unix like o sistemas operativos como Microsoft Windows Mac OS entre otros Indice 1 Historia y Desarrollo 1 1 GTK 1 1 2 GTK 2 1 3 GTK 3 1 4 GTK 4 1 5 Soporte 1 5 1 Windows 1 5 2 macOS 1 6 Automatizacion de compilacion 2 Bibliotecas de GTK 2 1 GLib 2 1 1 GLib core 2 1 2 GObject 2 1 3 GIO 2 2 GTK 2 3 GDK 2 4 ATK 2 5 Pango 2 6 Cairo 3 Disenadores de interfaces graficas GUI 3 1 Glade 3 2 Stetic 4 Uso 4 1 Aplicaciones 4 2 Entornos que utilizan GTK 4 2 1 Activos 4 2 2 Inactivos 4 3 Gestor de ventanas 5 Implementaciones disponibles 6 Ejemplos 6 1 C 6 2 Python 7 Estilo grafico 7 1 Adwaita 7 2 Yaru 8 Critica 9 Historial de lanzamientos 10 Vease tambien 11 Referencias 12 Enlaces externosHistoria y Desarrollo EditarFue desarrollada inicialmente por Peter Mattis Spencer Kimball y Josh MacDonald 3 4 3 para implementar la interfaz grafica del programa de Manipulacion de Imagenes de GNU GIMP como reemplazo del kit de herramientas Motif en algun momento Peter Mattis se desencanto con Motif y comenzo a escribir su propio kit de herramientas GUI llamado GIMP toolkit reemplazando con exito Motif para la version 0 60 de GIMP Finalmente GTK fue reescrito para ser orientado a objetos y paso a llamarse GTK haciendose uso de esto por primera vez en la version 0 99 de GIMP Siendo la primera version estable de GTK lanzada el 14 de abril de 1998 6 GTK esta 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 graficas no directamente relacionadas con GNOME tambien han empleado GTK Ademas de otros entornos graficos para Linux como XFCE y ROX han elegido tambien GTK como su biblioteca de componentes graficos El desarrollo de GTK se maneja libremente La discusion ocurre principalmente en varias listas de correo publicas 9 Los desarrolladores y usuarios de GNOME se reunen en una reunion anual GNOME Users And Developers European Conference GUADEC para discutir el estado actual y la direccion futura de GNOME 10 GNOME incorpora estandares y programas de freedesktop org para interactuar mejor con otros escritorios GTK 1 Editar Logo antiguo Esta biblioteca contenia algunas rutinas de ayuda para resolver tareas basicas de programacion como el almacenamiento de diversos datos Estos requieren mucho tiempo para el programador especialmente cuando se trata del desarrollo repetido de programas Las primeras versiones de GTK incluian estructuras de datos para listas vinculadas arboles binarios o cadenas en crecimiento Ademas ya que fue reescrito para ser orientado a objetos GTK permite usar este paradigma de programacion dentro del lenguaje C Estas herramientas tambien resultaron utiles para programas sin una interfaz grafica de usuario y por lo tanto mas tarde se trasladaron a una biblioteca separada llamada biblioteca GLib de funciones C El sistema orientado a objetos en la siguiente version se relevo a la biblioteca GObject los metodos de dibujo orientados al sistema a la biblioteca GDK GTK Kit de dibujo Este ultimo permite que GTK se ejecute de forma identica en plataformas en Windows X Window System macOS entre otros GTK 2 Editar La version GTK 2 recibio nuevas funciones mejoradas para renderizar texto usando la biblioteca Pango la creacion de GObject un nuevo motor de temas una API mas flexible y una biblioteca novedosa ATK para mejorar la accesibilidad del kit de herramientas para personas discapacitadas por ejemplo se puede abordar el software de lectura las herramientas de aumento y los dispositivos de entrada alternativos GTK 2 no es compatible con GTK 1 por lo que las aplicaciones existentes tuvieron que ser portadas A partir de la version 2 8 GTK usa la biblioteca Cairo basada en vectores que usa aceleracion de hardware para renderizar si es posible GTK 2 24 es la ultima version de la serie 2 x GTK 3 Editar La version 3 0 fue lanzada el 10 de febrero de 2011 11 Muchas funciones que se clasificaron como obsoletas se han eliminado y se han mejorado las interfaces existentes GTK 3 no es compatible con versiones anteriores de GTK 2 x Sin embargo las bibliotecas de ambas versiones se pueden instalar en paralelo La serie GTK 3 incluye una nueva interfaz para dibujar widgets que ahora esta completamente basada en Cairo un motor de temas basado en CSS que tambien permite transiciones de estado animadas opciones de diseno mejoradas un nuevo widget de interruptor deslizante una clase de aplicacion soporte para multiples dispositivos senaladores punteros multiples e iconos simbolicos eso puede cambiar de color segun la condicion Las estructuras internas se han separado y ocultado de la interfaz publica por lo que sera mas facil realizar cambios en el futuro sin tener que romper la interfaz Ademas se admiten multiples backends GDK simultaneamente dentro de la misma biblioteca 12 Hasta ahora varias bibliotecas eran necesarias Se introdujeron dos nuevos backends uno para el servidor de visualizacion Wayland y un back end HTML5 llamado Broadway con el que las aplicaciones GTK pueden operarse de forma remota en el navegador a traves de la red 13 Se admite el desplazamiento multiple y suave que tambien esta disponible para Windows 14 ademas se admite animaciones CSS y difuminacion de sombras La version 3 6 4 es la ultima version oficial para Windows de 32 bits y 64 bits 15 Existen mas cambios como la mejora de la visualizacion de los monitores de alta resolucion 16 La presentacion de Popover burbujas de discurso comicas que se pueden usar como ayuda 17 se admite gestos multitactiles 18 19 Ademas se admite la representacion de ventanas a traves de OpenGL El nuevo elemento de control GtkGLArea tambien permitio 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 22 GTK 3 20 integra el corrector ortografico con gspell y mejora la tematica CSS Mientras que GTK 3 22 se presenta como una version LTS y anade soporte a portales Flatpak para instalaciones de software simples 23 El 1 de septiembre de 2016 una publicacion en el blog de desarrollo de GTK denoto entre otras cosas el futuro esquema de numeracion de GTK 24 La version 3 22 de GTK de otono de 2016 sera la ultima version 3 x o al menos eso era lo planeado 25 Despues de eso todos los recursos se trasladaran a la serie de desarrollo GTK 4 con los nombres de version 3 90 3 92 etc Incluso cuando la serie 4 x entre en desarrollo las aplicaciones notables aun usan GTK 2 x y no se han portado a 3 22 Con respecto al futuro del software heredado que usa GTK no existe un proyecto colectivo para portar el software GTK 2 x a 3 22 GTK 4 0 se esta preparando con la serie inestable 3 9x En marzo de 2017 se agrego el Scene Graph Kit GSK con la version 3 90 Implementa un grafico de escena y se encarga de la sintesis de imagenes En febrero de 2019 se anuncio que GTK 4 0 eliminara el signo mas de la parte del nombre 1 GTK 4 Editar source source source source source source source source source source source source source source Ejemplo de interfaz en GTK 4 Una de las principales novedades implementadas durante el ciclo de desarrollo de GTK 4 es decir GTK 3 92 etc ha sido la delegacion de funcionalidad a objetos auxiliares en lugar de codificarla en las clases base proporcionadas por GTK El manejo de eventos desde los controladores de senales descritos por GtkWidget se delega a los controladores de eventos La representacion se delega a los objetos GtkSnapshot El mecanismo de diseno de GtkWidget se delega a GtkLayoutManagerEn el 26 de enero de 2018 en DevConf cz Matthias Clasen ofrecio una vision general del estado actual del desarrollo de GTK 4 incluida una explicacion de alto nivel sobre como funcionaba el renderizado y la entrada en GTK 3 que cambios se estaban realizando en GTK 4 y las razones de esos cambios Tambien se dieron ejemplos de cosas que se han hecho posibles con GTK 4 26 Soporte Editar Windows Editar De acuerdo con GTK 2 24 10 y 3 6 4 se detuvo el desarrollo de Windows con el instalador en Gnome Se recomienda instalar el sistema de paquetes MSYS2 de Gnome en Windows GTK 2 24 10 y 3 6 4 todavia estan disponibles en la red sin embargo en comparacion con las versiones actuales en Linux estan mucho mas afectados por los errores 27 28 Para Windows de 64 bits a partir de junio de 2018 el trabajo de Tom Schoonjans 2 24 32 actual como Linux y 3 22 30 actual como Linux ya esta disponible 29 Con Windows 10 Fall Creators Update GTK 3 ahora tambien esta disponible en WSL Las instrucciones para instalar programas con Windows estan disponibles en la comunidad GTK 30 Con distribuciones de Linux como Ubuntu o Debian disponibles en la Tienda Windows y un servidor X como Xming o VcXsvr miles de programas como GTK 2 o 3 pueden ejecutarse con X o soporte de terminal macOS Editar Sobre el backend Quartz 31 un puerto del sistema X Window GTK puede usarse en macOS Automatizacion de compilacion Editar Anteriormente GTK y GNOME GLib etc utilizaban el sistema de compilacion GNU denominado Autotools como el sistema de automatizacion de compilacion elegido Desde el 14 de agosto de 2017 la rama maestra de GTK compila con Meson y los archivos del sistema de compilacion de Autotools se han eliminado 32 Bibliotecas de GTK EditarGTK se basa en varias bibliotecas desarrolladas por el equipo de GTK y de GNOME GLib Editar Articulo principal GLib Arquitectura de software simplificada de GTK Pango GDK ATK GIO Cairo y GLib Es un conjunto de bibliotecas de bajo nivel que comprende GLib Core GObject y GIO 33 Estas bibliotecas se desarrollan todas bajo un mismo repositorio de Git denominado glib Por lo que GLib puede referirse a GLib core o todo el conjunto de bibliotecas GLib core Editar GLib core proporciona el manejo de estructura de datos para C Listas enlazadas arboles tablas hash entre otras envoltorios de portabilidad bucle de eventos subprocesos carga dinamica de modulos y muchas mas funciones GObject Editar Articulo principal GObject GObject por su parte simplifica los paradigmas de Programacion orientada a objetos y la Arquitectura dirigida por eventos para C La Arquitectura dirigida por eventos no solo es util para interfaces graficas de usuario sino tambien para demonios que respondan a cambios de hardware insertar un USB un monitor etc software de red u otros procesos puede llegar a ser de bastante utilidad GIO Editar GIO depende de las anteriores bibliotecas del conjunto este proporciona un API de alto nivel para entrada y salida ya sea la lectura de un archivo local una secuencia de red procesos de comunicacion con D Bus y muchos usos mas Este conjunto de bibliotecas permite escribir servicios del sistema operativo bibliotecas utilidades de linea de comando y mucho mas Por lo que puede llegar a ser mas comodo y recomendable escribir un programa en C haciendo uso de GLib ademas ofrece una API de alto nivel como el estandar POSIX GTK Editar GDK contiene back end para X11 Wayland Broadway HTTP Quartz y GDI y se basa en Cairo para la representacion Su nuevo SceneGraph es un trabajo en progreso Biblioteca que contiene un kit de herramientas de widgets basados en GLib este kit realmente contiene los objetos y funciones para crear la Interfaz grafica de usuario GUI Maneja widgets como ventanas botones menus etiquetas deslizadores pestanas etc GDK Editar Articulo principal GDK Biblioteca que actua como intermediario entre graficos de bajo nivel y graficos de alto nivel De manera que libera a GTK de preocupaciones de bajo nivel como la recopilacion de entrada arrastrar y soltar y la conversion de formato de pixeles GDK es una capa intermedia que separa GTK de los detalles del sistema de ventanas GDK es una parte importante de la portabilidad de GTK Dado que GLib ya proporciona la funcionalidad multiplataforma de bajo nivel todo lo que se necesita para hacer que GTK se ejecute en otras plataformas es portar GDK a la capa de graficos del sistema operativo subyacente Por lo tanto los puertos GDK a la API de Windows y Quartz son los que permiten que las aplicaciones GTK se ejecuten en Windows y macOS respectivamente ATK Editar Articulo principal ATK informatica Biblioteca para crear interfaces con caracteristicas de una gran accesibilidad muy importante para personas discapacitadas o minusvalidos Pueden usarse utilerias como lupas de aumento lectores de pantalla o entradas de datos alternativas al clasico teclado o raton Pango Editar Articulo principal Pango Biblioteca para el diseno y renderizado de texto hace hincapie especialmente en la internacionalizacion Esta disenado de forma modular esto significa que Pango puede ser usado por aplicaciones de diferentes arquitecturas o metodologias de programacion Ademas es el nucleo para manejar las fuentes y el texto de la version 2 de GTK Cairo Editar Articulo principal Cairo biblioteca Biblioteca de renderizado avanzado de controles de aplicacion usada para proporcionar imagenes basadas en graficos vectoriales Ademas proporciona primitivas para el dibujo bidimensional a traves de una serie de backends diferentes Disenadores de interfaces graficas GUI EditarAlgunos de los programas para diseno de interfaces graficas con GTK son los siguientes Glade Editar Articulo principal Glade Diseno de un dialogo de preferencias en Glade Es una herramienta de desarrollo visual de interfaces graficas mediante GTK GNOME Es independiente del lenguaje de programacion y predeterminadamente no genera codigo fuente sino un archivo XML gracias a GTKBuilder que puede ser usado en numerosos lenguajes de programacion incluyendo C C C Vala Java Perl Python La posibilidad de generar automaticamente codigo fuente fue descontinuada desde la version 3 de Glade De manera mas tecnica la clase describe la interfaz en un archivo de Lenguaje de marcado extensible XML y luego carga la descripcion XML en tiempo de ejecucion y crea los objetos automaticamente Glade Interface Designer permite la creacion de la interfaz de usuario de manera WYSIWYG Por lo que la descripcion de la interfaz de usuario es independiente del lenguaje de programacion utilizado Glade puede ser utilizado de manera directa pero tambien esta totalmente integrado en Anjuta 2 El proyecto se encuentra bajo la licencia GPL Stetic Editar Articulo principal MonoDevelop Interfaz de Monodevelop 5 4 Parte de MonoDevelop orientado al trabajo con GTK Stetic es muy similar a Glade Interface Designer pero esta integrado en MonoDevelop con funciones como arrastrar y soltar Ha sido criticado por ser mas dificil de trabajar que Qt Designer y Microsoft Visual Studio Windows Forms Editor cuando el programador aun no tiene un diseno concreto en mente MonoDevelop puede ejecutarse en las distintas distribuciones de Linux y en Mac Desde la version 2 2 MonoDevelop ya cuenta con soporte completo para GNU Linux Windows y Mac Ademas incluye un compilador que admite C 1 0 C 2 0 C 3 0 C 4 0 C 5 0 y C 6 0 Uso EditarAplicaciones Editar Editor de imagenes GIMP 2 10 8 Editor de graficos vectoriales Inkscape 1 0 Editor de video Pitivi Cliente para la red BitTorrent Transmission 2 92 Algunas aplicaciones que usan GTK para desarrollar sus interfaces de usuario incluyen AbiWord Procesador de textos CinePaint ex FilmGimp Editor de graficos animados en HDR Ekiga ex GnomeMeeting Software telefonico VoIP H 323 SIP Evolution Cliente de correo electronico Firefox Navegador web Geany un editor de texto IDE y GTK multiplataforma ligero basado en Scintilla GIMP Editor de graficos GNU Emacs puede usar GTK cuando se ejecuta en X Gnumeric Programa de hoja de calculo Chromium Navegador Web basado en WebKit y desarrollado en gran medida por Google GRAMPS Software de genealogia Inkscape Editor de graficos vectoriales SVG K 3D Programa de modelado 3D libre LiVES Editor de video Marionnet Un simulador de red interactivo Midori Navegador Web ligero forma parte del proyecto XFCE Nero Linux Un programa para la edicion de discos Pidgin Cliente de mensajeria instantanea VMware Player Maquina virtual Wireshark Capturador y analizador de paquetes de redes computacionales Entornos que utilizan GTK Editar Articulo principal Entorno de escritorio Escritorio GNOME 3 36 3 elementary OS Hera Escritorio XFCE 4 14 Escritorio Cinnamon 4 4 8 Escritorio MATE 1 20Activos Editar GNOME esta basado en GTK 3 junto a los programas del entorno Xfce esta basado en GTK 3 Cinnamon una bifurcacion de GNOME 3 que usa GTK 3 MATE una bifurcacion de GNOME 2 y utiliza GTK 3 desde la version 1 18 Pantheon usa GTK 3 exclusivamente desarrollado por Elementary OS Budgie construido desde cero para el sucesor de SolusOS el sistema operativo Solus Sugar un entorno de escritorio para la educacion primaria juvenil que utiliza GTK especialmente PyGTK Phosh una interfaz de usuario movil disenada para PureOS One Laptop Per Child usa GTK y PyGTK Maemo Nokia s Internet tablet framework Inactivos Editar Unity el antiguo entorno de escritorio predeterminado de Ubuntu LXDE esta basado en GTK significa Lightweight X11 Desktop Environment ROX Desktop un escritorio ligero con caracteristicas de la GUI de RISC OS GPE Palmtop Environment Access Linux Platform sucesor de la plataforma Palm OS PDA Los entornos de escritorio no son necesarios para ejecutar los programas GTK Si las bibliotecas que requiere el programa estan 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 esta instalado GTK tambien puede ejecutarse en Microsoft Windows es utilizado por algunas aplicaciones populares multiplataforma como Pidgin y GIMP wxWidgets un toolkit grafico multiplataforma usa GTK en sistemas tipo Unix 34 Algunos de los ports mas inusuales incluyen directfb y ncurses Gestor de ventanas Editar IceWM Marco Metacity Muffin Mutter Sawfish XfwmImplementaciones disponibles EditarDado que GTK es una biblioteca C pura se puede vincular facilmente a muchos otros lenguajes de programacion Con los lenguajes de programacion orientados a objetos los GObjects no se usan los objetos GTK generalmente se pueden usar alli como objetos nativos del lenguaje de programacion El lenguaje de programacion Vala utiliza GObject directamente como un sistema de objetos y por lo tanto no requiere una biblioteca en tiempo de ejecucion para la conexion del lenguaje Existe una gran variedad de lenguajes de programacion con los cuales se puede usar GTK 35 aunque no en todos esta disponible en su ultima version Entre los mas usados estan los siguientes Lenguaje Nombre Soporte Licencia EjemplosV2 V3 V4 OficialC GTK Si Si Si Si LGPL 2 1 Archivos GIMPC gtkmm Si Si Si Si LGPL 2 1 InkscapeC Gtk sharp Parcial Si Desconocido Si LGPL 2 1 MonoDevelop PintaD Gtkd Si Si Si No LGPL 3Genie Genie Si Si Si Si LGPL 2 1Go Gotk3 No Si Desconocido No GPL 3Java java gnome Si Si Desconocido Si GPL 2Javascript Gjs Si Si Si Si MITSeed Si Si Si Si LGPL 2 1Julia Gtk jl Si Si Desconocido No MITPerl gtk2 perl Si Si Si Si LGPL 2 1Python PyGObject Si Si Si Si LGPL 2 1 PitiviRust Gtk rs No Si Si Si MIT Fractal Shortwave Pika BackupVala Vala Si Si Si Si LGPL 2 1 Cajas ShotwellEjemplos EditarLa forma clasica de programar con GTK es definir primero las propiedades de los elementos graficos utilizados luego agruparlos y vincularlos a rutinas especificas de manejo de eventos un posible evento seria hacer clic en un boton por ejemplo Sin embargo tambien hay herramientas de diseno grafico para superficies GTK como Glade o Stetic contenidas en MonoDevelop que pueden ahorrarle los dos primeros pasos expandir GTK con capacidades de creacion de prototipos y hacer posible realizar cambios en la superficie de un programa sin tener que hacer cambios en el codigo fuente del software C Editar Un hola mundo en GTK para Wikipedia Un programa tipico de Hello World que se muestra en la imagen podria verse asi Incluir gtk include lt gtk gtk h gt static void on activate GtkApplication app Crear una nueva ventana GtkWidget window gtk application window new app Crear un nuevo boton GtkWidget button gtk button new with label Hola Wikipedia Cuando se hace clic en el boton destruye la ventana pasada como un argumento g signal connect swapped button clicked G CALLBACK gtk widget destroy window gtk container add GTK CONTAINER window button gtk widget show all window int main int argc char argv Crear una nueva aplicacion GtkApplication app gtk application new com example GtkApplication G APPLICATION FLAGS NONE g signal connect app activate G CALLBACK on activate NULL return g application run G APPLICATION app argc argv Para compilar este codigo son necesarias algunas dependencias segun 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 codigo es necesario ubicarse en la ruta del archivo y escribir lo siguiente en una terminal gcc ejemplogtk c o ejemplogtk pkg config cflags libs gtk 3 0 Para ejecutar el archivo se escribe ejemplogtk Python Editar import gi gi require version Gtk 3 0 from gi repository import Gtk window Gtk Window title Hola Wikipedia window show window connect destroy Gtk main quit Gtk main Para abrir este codigo son necesarias algunas dependencias segun 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 Para ejecutar el archivo es necesario ubicarse en la ruta del archivo luego ejecutarlo escribiendo python3 hello pyEstilo grafico EditarLa apariencia de GTK es en gran medida configurable por el usuario existiendo una gran cantidad de temas para elegir Estos temas pueden ser descargados de diferentes sitios como GNOME Look Los siguiente son los mas populares Adwaita Editar Ejemplo de Adwaita Es el nuevo tema estandar de GTK desde mediados de 2014 siendo el tema sobre el que se recomienda trabajar para realizar desarrollos en interfaces graficas 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 podria traer diferencias en la percepcion del usuario final en un mismo programa 38 Afirmando que al alterar las hojas de estilo GTK las aplicaciones podrian parecer danadas o inutilizables los iconos podrian representar conceptos diferentes al pensado por el programador Tambien aseguraban que las capturas encontradas dentro de tiendas de software podrian enganar al usuario de la apariencia de la aplicacion y ademas que podria llegar a generar conflictos en la compresion de la documentacion para el usuario final Esta propuesta fue aceptada por diferente distribuciones las cuales adoptaron directamente Adwaita o basaron sus temas sobre este como es el caso de Ubuntu con su tema Yaru 39 Yaru Editar Ejemplo de Yaru Es el tema oficial de Ubuntu posee diferentes tonalidades las cuales puede elegir el usuario El tema se basa en Adwaita Critica EditarLa critica mas comun de GTK es la falta de compatibilidad con versiones anteriores en las principales actualizaciones sobre todo en la interfaz de programacion de aplicaciones API 40 y temas 41 Benjamin Otte explico que las interrupciones de compatibilidad entre lanzamientos menores durante el ciclo de desarrollo de GTK 3 x se debieron a fuertes presiones para innovar como proporcionar las caracteristicas que los usuarios modernos esperan y apoyar el protocolo de servidor de pantalla Wayland cada vez mas influyente Con el lanzamiento de GTK 4 se habra liberado la presion de la necesidad de innovar y el equilibrio entre estabilidad e innovacion se inclinara hacia la estabilidad 42 Del mismo modo los cambios recientes en la tematica estan destinados especificamente a mejorar y estabilizar esa parte de la API lo que significa que alguna inversion ahora deberia recompensarse mas adelante Dirk Hohndel desarrollador de codigo de Subsurface y miembro del Centro de Tecnologia de Codigo Abierto de Intel critico a los desarrolladores de GTK por ser abrasivos e ignorar la mayoria de las solicitudes de la comunidad 43 Hong Jen Yee desarrollador de LXDE cuya version GTK se eliminara y todos los esfuerzos se centraron en el puerto Qt 44 expreso su desden por la version 3 de los cambios radicales de API del kit de herramientas GTK y el mayor uso de memoria y porto el archivo PCMan File Manager PCManFM a Qt PCManFM se esta desarrollando con un GTK y con un backend Qt al mismo tiempo 45 El reproductor de musica Audacious se mudo a Qt en la version 3 6 46 Las razones indicadas por los desarrolladores para esto incluyen una transicion a las decoraciones de ventanas del lado del cliente que segun ellos hacen que la aplicacion se vea GNOME y y fuera de lugar 47 Wireshark ha cambiado a Qt debido a que no tiene una buena experiencia con el soporte multiplataforma de GTK 48 Historial de lanzamientos EditarResumen de lanzamientosLanzamiento Version inicial Mejoras importantes Ultima version menorGTK 1Version antigua sin servicio tecnico 1 0 13 de abril de 1998 49 Primera version estable 1 0 6Version antigua sin servicio tecnico 1 2 25 de febrero de 1999 50 Nuevos widgets GtkFontSelector GtkPacker GtkItemFactory GtkCTree GtkInvisible GtkCalendar GtkLayout GtkPlug GtkSocket 1 2 10Leyenda Version antiguaVersion antigua con soporte tecnicoUltima versionUltima version previaLanzamiento futuroGTK 2Version antigua sin servicio tecnico 2 0 11 de marzo de 2002 51 GObject Soporte general para UTF 8 2 0 9Version antigua sin servicio tecnico 2 2 22 de diciembre de 2002 52 Soporte de multiples cabeceras 2 2 4Version antigua sin servicio tecnico 2 4 16 de marzo de 2004 53 Nuevos widgets GtkFileChooser GtkComboBox GtkComboBoxEntry GtkExpander GtkFontButton GtkColorButton 2 4 14Version antigua sin servicio tecnico 2 6 16 de diciembre de 2004 54 Nuevos widgets GtkIconView GtkAboutDialog GtkCellViewEl ultimo en admitir Windows 98 Me 2 6 10Version antigua sin servicio tecnico 2 8 13 de agosto de 2005 55 La mayoria de los widgets son renderizados por Cairo 2 8 20Version antigua sin servicio tecnico 2 10 3 de julio de 2006 56 Nuevos widgets GtkStatusIcon GtkAssistant GtkLinkButton GtkRecentChooserSoporte de impresion GtkPrintOperation 2 10 14Version antigua sin servicio tecnico 2 12 14 de septiembre de 2007 57 GtkBuilder 2 12 12Version antigua sin servicio tecnico 2 14 4 de septiembre de 2008 58 soporte de carga de JPEG 2000 2 14 7Version antigua sin servicio tecnico 2 16 13 de marzo de 2009 59 Nuevo widget GtkOrientable Advertencia de bloqueo de mayusculas en la entrada de contrasenaMejoras en GtkScale GtkStatusIcon GtkFileChooser 2 16 6Version antigua sin servicio tecnico 2 18 23 de septiembre de 2009 60 Nuevo widget GtkInfoBar Mejora en el selector de archivos impresionPara eliminar gran parte del IPC necesario entre la aplicacion X11 y el servidor X11 GDK se reescribe principalmente por Alexander Larsson para usar ventanas del lado del cliente es decir la ventana GdkWindow que cada widget debe tener pertenece ahora al cliente 2 18 9Version antigua sin servicio tecnico 2 20 23 de marzo de 2010 61 Nuevos widgets GtkSpinner GtkToolPalette GtkOffscreenWindowMejora en el selector de archivos manejo del teclado GDKLos datos de introspeccion ahora se incluyen en GTK 2 20 1Version antigua sin servicio tecnico 2 22 23 de septiembre de 2010 62 GdkPixbuf se movio a un modulo separado La mayoria de los dibujos de GDK se basan en CairoMuchos datos internos ahora son privados y se pueden sellar en preparacion para GTK 3 2 22 1Version antigua con servicio tecnico 2 24 30 de enero de 2011 63 Nuevo widget GtkComboBoxText El backend de impresion CUPS puede enviar trabajos de impresion como PDFGtkBuilder ha obtenido soporte para etiquetas de texto y botones de herramientas de menu y se agregaron muchas correcciones de anotacion de introspeccionMigracion de GTK 2 x a GTK 3 2 24 32 2018 01 08 Leyenda Version antiguaVersion antigua con soporte tecnicoUltima versionUltima version previaLanzamiento futuroGTK 3Version antigua sin servicio tecnico 3 0 10 de febrero de 2011 11 El desarrollo y diseno de la version GTK 3 del kit de herramientas comenzo en febrero de 2009 durante el GTK Theming Hackfest celebrado en Dublin 64 El primer borrador de la hoja de ruta para el desarrollo se publico el 9 de abril de 2009 65 Completado principalmente Proyecto Ridley El intento de consolidar varias bibliotecas externas a GTK Incluyendo libgnome libgnomeui libgnomeprint22 libgnomeprintui22 libglade libgnomecanvas libegg libeel gtkglext and libsexy 66 Todo el renderizado se realiza usando CairoGDK se convirtio X11 agnosticoXInput2 el tema API se basa en Hoja de estilos en cascada CSS lo que empeora el rendimiento alcanzable para 60 Hz fotogramas por segundos 3 0 12Version antigua sin servicio tecnico 3 2 25 de septiembre de 2011 67 Nuevos widgets GtkLockButton GtkOverlayNuevo cuadro de dialogo para selector de fuenteNuevos backends experimentales Wayland HTML5 llamado Broadway 3 2 4Version antigua sin servicio tecnico 3 4 26 de marzo de 2012 68 Soporte de menu en GtkApplication Un nuevo selector de colorSoporte agregado para dispositivos tactilesSoporte agregado para desplazamiento suaveGtkScrolledWindow realizara desplazamiento cinetico con dispositivos tactilesSe ha mejorado la compatibilidad con macOSEsta es la primera version de GTK 3 que funciona bien en WindowsEl backend de Wayland se actualiza a la version actual de WaylandLos botones de giro han recibido un nuevo aspectoAccesibilidad el soporte accesible con vista de arbol se reescribeMas soporte completo de temas CSS 3 4 4Version antigua sin servicio tecnico 3 6 24 de septiembre de 2012 69 Nuevos widgets GtkSearchEntry GtkMenuButton GtkLevelBarBotones de giro verticalAnimaciones CSS sombras borrosasSoporte para desvanecimiento y transiciones en temas 3 6 5Version antigua sin servicio tecnico 3 8 25 de marzo de 2013 70 Soporte estable de Wayland 1 0 Soporte para el servidor broadwaydTematizacion mejoradaMejor gestion de la geometria Mejoras tactilesSoporte con el administrador de ventanas para el protocolo de sincronizacion de tramaGdkFrameClock agregado 71 3 8 9Version antigua sin servicio tecnico 3 10 23 de septiembre de 2013 72 Nuevos widgets GtkHeaderBar GtkPlacesSidebar GtkStack GtkStackSwitcher GtkRevealer GtkSearchBar GtkListBoxSoporte para Wayland 1 2 maximizacion cursores animados monitores multiples ajustes superficies personalizadas sincronizacion de tramaAdicional decoraciones del lado del cliente soporte de salida a escala en pantallas de alta resolucion modo de ajuste fino para desplazamientoRetirado soporte para el protocolo Motif DND soporte para multiples pantallas por pantalla gdk window get display gtk widget push composite childElementos de menu desprendibles ademas de muchas configuraciones GTKTEl moderno modelo de dibujo GTK 3 10 9Version antigua sin servicio tecnico 3 12 25 de marzo de 2014 73 Decoraciones del lado del cliente 74 Soporte para Wayland 1 5Nuevo widget GtkPopover una alternativa a los menus y cuadros de dialogo 3 12 2Version antigua sin servicio tecnico 3 14 22 de septiembre de 2014 75 Se introdujo GtkInspector una copia de gtkparasite 76 77 Soporte mejorado para gestos fusion multitactil 78 79 En desuso 80 GtkMisc GtkAlignment GtkArrow GdkColor Regiones de estilo soporte para archivos icon gdk window flush dibujar fuera de la pintura de inicio finLa mayoria de los widgets se convierten para usar gestos internamenteWayland admite el modo clasico de GNOME Shell 81 3 14 15Version antigua sin servicio tecnico 3 16 22 de marzo de 2015 82 GDK admite renderizar ventanas usando OpenGL para X11 y Wayland usando libepoxy Nuevos widgets GtkGLArea GtkStackSidebar GtkModelButton GtkPopoverMenuDesplazamiento revisado barra de desplazamiento oculta por defecto 83 Experimental Mir backend 84 3 16 7Version antigua sin servicio tecnico 3 18 23 de septiembre de 2015 85 Agregar infraestructura de nodo CSS Mas actualizacion de diseno de filechooser y mejor busqueda de filechooserSoporte de Windows XP eliminadoModelo de soporte para lista y cuadro de flujoDesplazamiento cinetico del panel tactilGestos del panel tactil Wayland utilidad gtk builder toolVentanas solo de salida 3 18 9Version antigua sin servicio tecnico 3 20 21 de marzo de 2016 86 Mayor integracion de nodos CSS 87 Mover arrastrar y soltar hacia GDKNuevo widget GtkShortcutsWindow muestra metodos abreviados de teclado y gestos de una aplicacion 3 20 10Version antigua con servicio tecnico 3 22 21 de septiembre de 2016 88 Ultima version 3 x 24 WEl soporte para tabletas Wayland se fusiono 89 el soporte para tabletas graficas se considera completo 90 GTK 3 22 sera tan estable y por lo tanto aburrido como GTK 2 91 92 93 por 3 anos3 22 29Version estable actual 3 24 3 de septiembre de 2018 25 Se suponia que 3 22 era la ultima version de la serie GTK 3 3 24 se lanzo principalmente para facilitar la migracion de GTK 3 x a GTK 4Golpes de dependencia requieren libepoxy 1 4 pango 1 41Nuevas caracteristicas del selector de fuente permitir configurar caracteristicas de fuente OpenType mostrar ejemplos de caracteristicas de fuente OpenType permitir seleccionar variaciones de fuente OpenType Niveles de soporte de detalles para la seleccionNuevas caracteristicas de Emoji admite una ventana emergente de finalizacion para Emoji soltar el atajo Ctrl Shift eOtras API nuevas gdk window move to rectWayland usa memoria anonima compartida en FreeBSDControladores de eventos con respaldo de GTK 4 GtkEventControllerScroll GtkEventControllerMotion GtkEventControllerKey GtkGestureStylusEn desuso algunas API que se han ido en GTK 4 cadenas de enfoque en GtkContainer sensibilidad paso a paso en GtkRange 3 23 03 23 13 23 23 23 33 24 0 3 24 53 24 14Leyenda Version antiguaVersion antigua con soporte tecnicoUltima versionUltima version previaLanzamiento futuroDesarrollo de la serie GTK 4Version antigua sin servicio tecnico 3 90 31 de marzo de 2017 94 GTK Scene Graph Kit GSK fusionado 95 Eliminar cualquier API marcada como obsoleta antes 22 09 2016 vs despuesDesarrollo pesado romper API y ABI 92 93 Un nuevo renderizador de Vulkan aumenta el antiguo renderizador de Cairo 96 3 89 13 89 23 89 43 89 53 90Version antigua sin servicio tecnico 3 92 18 de octubre de 2018 97 98 Como GNOME 3 26 ya se lanzo el 13 de septiembre de 2017 99 no estaba basado en GTK 3 92 GNU autotools fue reemplazado por Meson 3 91 03 91 13 91 23 92 1Version antigua sin servicio tecnico 3 94 26 de junio de 2018 100 3 93 GdkScreen GdkVisual eliminado GdkDeviceManager reemplazado por GdkSeat El manejo del portapapeles se mueve de GTK a GDK GdkEvent se convierte en un GObject opaco el renderizador GL en GSK se ha completado sustancialmente y ahora esta a la par con el renderizador Vulkan se reduce el uso de GdkPixbuf en las API y el objeto GskTexture se mueve a GDK como GdkTexture para tomar su lugar El backend de Wayland ahora implementa el protocolo de decoracion del lado del servidor KDE Broadway es portado a GSK GdkWindow renombrado a GdkSurfaceNueva abstraccion para contenido dibujable GdkPaintableHay soporte para mostrar medios con GtkVideo GtkMediaFile GtkMediaStream GtkMediaControls 3 933 94 0Version antigua sin servicio tecnico 3 96 7 de mayo de 2019 101 El comando gtk4 builder tool simplify ha obtenido una opcion 3to4 para convertir GTK3 archivos ui a GTK4 aunque con menus AMTK barras de herramientas u otros objetos como GtkShortcutsWindow se crean mediante programacion no con un archivo ui sino con API convenientes 102 GtkWidget ahora puede usar un GtkLayoutManager para la asignacion de tamano los administradores de diseno pueden usar opcionalmente hijos de diseno con propiedades de diseno GtkBinLayout GtkBoxLayout GtkGridLayout GtkFixedLayout y GtkCustomLayout estan actualmente disponibles Apareceran mas implementaciones de administrador de diseno en el futuroEl manejo del enfoque se ha reescrito y la generacion de eventos de cambio de enfoque se ha unificado con eventos cruzadosLos eventos se han simplificado y solo se usan para la entrada los eventos de exposicion han sido reemplazados por una senal GdkSurface render los eventos de configuracion han sido reemplazados por una senal GdkSurface size changed los eventos del mapa han sido reemplazados por una propiedad GdkSurface mapped gdk event handler set ha sido reemplazado por una senal GdkSurface event los eventos clave ya no contienen una cadena los eventos en widgets no asignados se ignoran 3 96 0Version antigua sin servicio tecnico 3 98 10 de febrero de 2020 103 Mejoras de rendimiento Refactorizacion de arrastrar y soltar Moviendo GDK hacia Wayland Remocion GtkMenu GtkToolbar y clases similares han sido reemplazadas por GMenu Adiciones Selector de emoji Los widgets de texto ahora tienen pilas de deshacer Un nuevo gestor de diseno 104 3 98 5Version antigua sin servicio tecnico 3 99 0 31 de julio de 2020 105 Herramientas de accesibilidad actualizadas Encabezados actualizado para utilizar estandar C tipos INSTED de GLib Nuevos widgets Correcciones y mejoras 3 99 0Version estable actual 4 0 16 de diciembre de 2020 106 Remocion de cualquier API marcada como obsoleta es decir al menos todo en el directorio obsoletoLeyenda Version antiguaVersion antigua con soporte tecnicoUltima versionUltima version previaLanzamiento futuroVease tambien EditarAnjuta Glade ValaReferencias Editar a b Bassi Emmanuele 6 de febrero de 2019 Project rename to GTK en en lista de correo gtk devel list https mail gnome org archives gtk devel list 2019 February msg00000 html consultado el 18 de junio de 2019 Corbet Jonathan 8 de febrero de 2019 GTK renamed to GTK Linux Weekly News en ingles Consultado el 18 de junio de 2019 a b A Brief and Ancient History of GIMP GNU Image Manipulation Program en ingles 1998 Consultado el 18 de junio de 2019 a b c Harlow Eric 1999 Desarrollo de aplicaciones Linux con GTK y GDK guia avanzada Prentice Hall ISBN 84 8322 196 9 OCLC 433163271 Consultado el 6 de julio de 2020 a b c What is GTK and how can I use it The GTK Project en ingles Consultado el 18 de junio de 2019 The GNOME Proyect Index of Public gimp gtk v1 0 en ingles Archivado desde el original el 12 de agosto de 2014 Consultado el 4 de julio de 2020 The GNOME Proyect GNOME Quick SWOT Analysis april 2010 en ingles Consultado el 1 de julio de 2020 de Icaza Miguel 1 de febrero de 1999 The GNOME Project Linux Journal en ingles Falta la url ayuda fechaacceso requiere url ayuda The GNOME Proyect List Rules and FAQs en ingles Consultado el 1 de julio de 2020 The GNOME Proyect GUADEC2020 en ingles Consultado el 1 de julio de 2020 a b Clasen Mathias 10 de febrero de 2011 GTK 3 0 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2011 February msg00020 html consultado el 6 de julio de 2020 Kristian Hogsberg 3 de enero de 2011 Multiple backends for GTK en ingles Consultado el 4 de julio de 2020 alexl 18 de abril de 2011 Broadway update 3 en ingles Consultado el 4 de julio de 2020 Thorsten Leemhuis 28 de marzo de 2012 GTK 3 4 mit Multitouch und Windows Unterstutzung en aleman Consultado el 4 de julio de 2020 Thorsten Leemhuis 25 de septiembre de 2012 Neue Versionen von GTK GLib und Clutter en aleman Consultado el 4 de julio de 2020 Oliver Diedrich 24 de septiembre de 2013 Gtk 3 10 mit verbesserter Wayland Unterstutzung en aleman Consultado el 4 de julio de 2020 Oliver Diedrich 27 de marzo de 2014 Angesehen Gnome 3 12 en aleman Consultado el 4 de julio de 2020 Oliver Diedrich 2 de octubre de 2014 Immer mehr Spiele fur Linux en aleman Consultado el 4 de julio de 2020 Keywan Tonekaboni 4 de agosto de 2013 GUADEC Wayland Support fur Gnome en aleman Consultado el 4 de julio de 2020 The GNOME Project 2015 Bienvenido a GNOME 3 16 en ingles Consultado el 4 de julio de 2020 Thorsten Leemhuis 23 de marzo de 2015 Linux Desktop Neues Gnome zeigt Nachrichten oben en aleman Consultado el 4 de julio de 2020 Rainald Menge Sonnentag 22 de marzo de 2016 GUI Toolkit GTK 3 20 verbessert das CSS Theming en aleman Consultado el 4 de julio de 2020 Rainald Menge Sonnentag 20 de octibre de 2016 GUI Toolkit GTK 3 22 bringt Flatpak Portale en aleman Consultado el 4 de julio de 2020 a b Allan 1 de septiembre de 2016 Versioning and long term stability promise in GTK GTK Development Blog en ingles Consultado el 1 de julio de 2020 a b Clasen Mathias 3 de septiembre de 2018 gtk 3 24 0 lista de correo GNOME Mail Services https mail gnome org archives ftp release list 2018 September msg00045 html consultado el 6 de julio de 2020 Clasen Matthias 2018 GTK 4 Status Update PDF Fedora People en ingles Consultado el 6 de julio de 2020 Alexander GTK for Windows Runtime Environment en ingles Consultado el 4 de julio de 2020 Tarnyko GTK en ingles Consultado el 4 de julio de 2020 Tom Schoonjans GitHub tschoonj GTK for Windows Runtime Environment Installer GTK for Windows Runtime Environment Installer fork from http gtk win sourceforge net en ingles Consultado el 4 de julio de 2020 Frank 31 de enero de 2018 Windows Subsystem for Linux Installation des WSL und Konfiguration von Gnome unter Windows 10 en aleman Consultado el 4 de julio de 2020 The GNOME Project Projects GTK OSX GNOME Wiki en ingles Consultado el 4 de julio de 2020 Bassi Emmanuele 15 de agosto de 2017 Build system change GTK s master branch en en lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2017 August msg00028 html consultado el 1 de julio de 2020 Wilmet Sebastien 29 de marzo de 2019 The GLib GTK Development Platform people gnome org en ingles Consultado el 1 de julio de 2020 WxWidgets Compared To Other Toolkits GTK Language Bindings Archivado desde el original el 13 de julio de 2011 Consultado el 3 de diciembre de 2014 Felipe Borges Gabe Ron Gtk Fedora Developer en ingles Consultado el 6 de julio de 2020 PyGObject Team Getting Started PyGObject PyGObject en ingles Consultado el 10 de julio de 2020 Desarrolladores de GNOME 2019 Please don t theme our apps stopthemingmy en ingles Consultado el 12 de septiembre de 2020 Medina Eduardo 27 de agosto de 2019 El tema Yaru de Ubuntu se basara en Adwaita para evitar la fragmentacion MuyLinux Consultado el 12 de septiembre de 2020 Morten Welinder 23 de junio de 2014 How Does One Create A Gtk Application blogs gnome org en ingles Consultado el 1 de julio de 2020 MCLASEN 20 de noviembre de 2015 A GTK UPDATE blogs gnome org en ingles Consultado el 1 de julio de 2020 GUADEC 22 de octubre de 2013 Index of 2013 GTK to infinity and beyond http videos guadec org en ingles Consultado el 1 de julio de 2020 Michael Larabel 12 de enero de 2014 The Biggest Problem With GTK amp What Qt Does Good phoronix en ingles Consultado el 1 de julio de 2020 BROTHER 22 de julio de 2013 The future of Razor and LXDE Qt blog lxde org en ingles Consultado el 1 de julio de 2020 PCMAN 26 de marzo de 2013 PCManFM Qt 0 1 0 released blog lxde org en ingles Consultado el 1 de julio de 2020 Audacious Developers 28 de febrero de 2015 Audacious 3 6 released https audacious media player org en ingles Consultado el 1 de julio de 2020 John Lindgren 6 de abril de 2014 Ugly window decorations and how to fix them GTK 3 12 redmine audacious media player org en ingles Consultado el 1 de julio de 2020 We re switching to Qt blog wireshark org en ingles octubre de 2013 Consultado el 1 de julio de 2020 Amundson Shawn T 13 de abril de 2020 ANNOUNCE GTK 1 0 0 Released lista de correo GNOME Mail Services https mail gnome org archives gtk list 1998 April msg00303 html consultado el 6 de julio de 2020 Amundson Shawn T 25 de febrero de 1999 ANNOUNCE GTK and GLib 1 2 0 Released lista de correo GNOME Mail Services https mail gnome org archives gtk list 1999 February msg00756 html consultado el 6 de julio de 2020 Taylor Owen 11 de marzo de 2002 GTK 2 0 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk list 2002 March msg00136 html consultado el 6 de julio de 2020 Taylor Owen 22 de diciembre de 2002 GTK 2 2 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk list 2002 December msg00206 html consultado el 6 de julio de 2020 Taylor Owen 16 de marzo de 2004 GTK 2 4 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk list 2004 March msg00111 html consultado el 6 de julio de 2020 Clasen Mathias 16 de diciembre de 2004 GTK 2 6 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk list 2004 December msg00155 html consultado el 6 de julio de 2020 Clasen Mathias 13 de agosto de 2005 GTK 2 8 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk list 2005 August msg00124 html consultado el 6 de julio de 2020 Clasen Mathias 3 de julio de 2006 GTK 2 10 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2006 July msg00004 html consultado el 6 de julio de 2020 Clasen Mathias 14 de septiembre de 2007 GTK 2 12 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2007 September msg00052 html consultado el 6 de julio de 2020 Clasen Mathias 4 de septiembre de 2008 GTK 2 14 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2008 September msg00024 html consultado el 6 de julio de 2020 Clasen Mathias 13 de marzo de 2009 GTK 2 16 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2009 March msg00101 html consultado el 6 de julio de 2020 Clasen Mathias 23 de septiembre de 2009 GTK 2 18 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2009 September msg00054 html consultado el 6 de julio de 2020 Clasen Mathias 23 de marzo de 2010 GTK 2 20 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2010 March msg00132 html consultado el 6 de julio de 2020 Clasen Mathias 23 de septiembre de 2010 GTK 2 22 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2010 September msg00263 html consultado el 6 de julio de 2020 Clasen Mathias 20 de enero de 2011 GTK 2 24 0 lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2011 January msg00042 html consultado el 6 de julio de 2020 Gtk 3 0 Theming API Hackfest Silicon Island Consultado el 3 de junio de 2017 Gtk 3 roadmap draft Consultado el 3 de junio de 2017 Attic ProjectRidley GNOME Wiki wiki gnome org Clasen Mathias 25 de septiembre de 2011 GTK 3 2 0 lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2011 September msg00175 html consultado el 6 de julio de 2020 Clasen Mathias 26 de marzo de 2012 GTK 3 4 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2012 March msg00082 html consultado el 6 de julio de 2020 Clasen Mathias 24 de septiembre de 2012 GTK 3 6 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2012 September msg00045 html consultado el 6 de julio de 2020 Clasen Mathias 25 de marzo de 2013 GTK 3 8 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2013 March msg00108 html consultado el 6 de julio de 2020 Frame clock GDK 3 Reference Manual developer gnome org Clasen Mathias 23 de septiembre de 2013 GTK 3 10 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2013 September msg00057 html consultado el 6 de julio de 2020 Clasen Mathias 25 de marzo de 2014 GTK 3 12 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2014 March msg00060 html consultado el 6 de julio de 2020 Client side decorations in themes Goings on Clasen Mathias 22 de septiembre de 2014 GTK 3 14 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2014 September msg00007 html consultado el 6 de julio de 2020 Matthias Clasen 15 de mayo de 2014 GtkInspector Author s blog entry Consultado el 17 de mayo de 2014 GtkInspector in GNOME wiki 15 de mayo de 2014 Consultado el 17 de mayo de 2014 Merging gestures into 3 14 23 de mayo de 2014 Consultado el 23 de mayo de 2014 RFC gestures 4 de abril de 2014 Consultado el 23 de mayo de 2014 gtk 3 13 2 27 de mayo de 2014 gtk 3 13 3 24 de junio de 2014 Clasen Mathias 22 de marzo de 2015 GTK 3 16 0 released lista de correo GNOME Mail Services https mail gnome org archives gtk devel list 2015 March msg00062 html consultado el 6 de julio de 2020 online heise Linux Desktop Neues Gnome zeigt Nachrichten oben heise online Consultado el 3 de junio de 2017 GTK 3 16 0 released mail gnome org Consultado el 3 de junio de 2017 Nestor Marius 24 de septiembre de 2015 GTK 3 18 0 Officially Released as Part of the GNOME 3 18 Desktop Environment Softpedia Consultado el 25 de mayo de 2019 Clasen Mathias 21 de marzo de 2016 GTK 3 20 lista de correo GNOME Mail Services https mail gnome org archives gtk list 2016 March msg00026 html consultado el 6 de julio de 2020 GTK 3 20 Style Classes and Element Names 20 de noviembre de 2015 Clasen Mathias 21 de septiembre de 2016 GTK 3 22 released lista de correo GNOME Mail Services https mail gnome org archives gtk list 2016 September msg00006 html consultado el 6 de julio de 2020 GTK Wayland tablet support is merged Carlos Garnacho hutterer input www x org GUADEC2013 Benjamin Otte talks about GTK GUADEC a b Gtk 4 0 will not be stable until Gtk 4 6 13 de junio de 2016 a b Gtk 5 0 will not be stable until Gtk 5 6 14 de junio de 2016 Clasen Mathias 31 de marzo de 2017 gtk 3 90 0 lista de correo GNOME Mail Services https mail gnome org archives ftp release list 2017 March msg00243 html consultado el 6 de julio de 2020 Projects GTK Roadmap GNOME Wiki wiki gnome org Commits master GNOME gtk GitLab Clasen Mathias 18 de octubre de 2017 gtk 3 92 1 lista de correo GNOME Mail Services https mail gnome org archives ftp release list 2017 October msg00117 html consultado el 6 de julio de 2020 Clasen Mathias 23 de octubre de 2017 GTK 3 92 GTK Development Blog Consultado el 25 de mayo de 2019 GNOME 3 26 Released 13 de septiembre de 2017 Clasen Mathias 26 de junio de 2018 gtk 3 94 0 lista de correo GNOME Mail Services https mail gnome org archives ftp release list 2018 June msg00073 html consultado el 6 de julio de 2020 Clasen Mathias 7 de mayo de 2019 gtk 3 96 lista de correo GNOME Mail Services https mail gnome org archives ftp release list 2019 May msg00032 html consultado el 6 de julio de 2020 Introducing amtk Clasen Mathias 6 de junio de 2020 gtk 3 98 5 lista de correo GNOME Mail Services https mail gnome org archives ftp release list 2020 June msg00024 html consultado el 6 de julio de 2020 Clasen Matthias 13 de febrero de 2020 GTK 3 98 GTK Development Blog en ingles Consultado el 18 de febrero de 2020 Clasen Mathias 31 de julio de 2020 gtk 3 99 0 lista de correo GNOME Mail Services https mail gnome org archives ftp release list 2020 July msg00096 html consultado el 28 de agosto de 2020 Clasen Mathias 16 de diciembre de 2020 gtk 4 0 0 lista de correo GNOME Mail Services https mail gnome org archives ftp release list 2020 December msg00029 html consultado el 25 de diciembre de 2020 Enlaces externos EditarGTK org ingles Pango org ingles GTK ALKIA ORG ingles RubyGTK bindings de GTK para Ruby ingles gtk fortran bindings de GTK para Fortran 2003 ingles PyGObject bindings de GTK para Python GTK bindings de GTK para Mono gtk2 perl bindings de GTK para perl PHP GTK bindings de GTK para PHP Java Gnome bindings de GTK Gnome para Java gtkmm bindings de GTK para C Roadmap ingles Video tutorial Calculadora con GTK Espanol Datos Q189464 Multimedia GTK Obtenido de https es wikipedia org w index php title GTK amp oldid 141659552, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos