# GTK

GTK (conocido hasta febrero de 2019 como GTK+) o The GIMP Toolkit$^{:3}$ es una biblioteca de componentes gráficos multiplataforma para desarrollar interfaces gráficas de usuario (GUI).$^{:3}$ Está licenciado bajo los términos de la GNU LGPL, por lo que permite la creación de tanto software libre como software privativo. GTK es parte del proyecto GNU, siendo usado por proyectos tan importantes como GIMP, Inkscape, GNOME, Xfce, entre otros.
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}$ 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.
GTK está escrito en lenguaje C, y es principalmente desarrollado por el Proyecto GNOME, ya que en 1997 este proyecto escoge GTK como base sobre la cual desarrollar el entorno de escritorio GNOME. 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. 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. GNOME incorpora estándares y programas de freedesktop.org para interactuar mejor con otros escritorios.

### GTK+ 1

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. 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. 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. Se admite el desplazamiento múltiple y suave, que también está disponible para Windows, 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.
Existen más cambios como la mejora de la visualización de los monitores de alta resolución. La presentación de Popover (burbujas de discurso cómicas que se pueden usar como ayuda), se admite gestos multitáctiles. 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. Desde GTK 3.18 (base de Gnome 3.18), la biblioteca es oficialmente compatible con Wayland, el sucesor del sistema X Windows. 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.
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. La versión 3.22 de GTK del otoño de 2016 será la última versión 3.x (o al menos eso era lo planeado). 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.

### 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
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.

### 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.
* 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.
* 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. 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, 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.

## Bibliotecas de GTK

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

### GLib

Es un conjunto de bibliotecas de bajo nivel, que comprende, GLib Core, GObject y GIO. 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

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

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

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

* Editor de imagenes GIMP 2.10.8.
* Editor de gráficos vectoriales Inkscape 1.0.
* Editor de vídeo 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 gráficos animados en HDR.
* Ekiga (ex GnomeMeeting) - Software telefónico VoIP H.323/SIP.
* Evolution - Cliente de correo electrónico.
* Firefox - Navegador web.
* Geany : un editor de texto IDE y GTK multiplataforma ligero basado en Scintilla .
* GIMP - Editor de gráficos.
* GNU Emacs puede usar GTK cuando se ejecuta en X.
* Gnumeric - Programa de hoja de cálculo.
* Chromium - Navegador Web basado en WebKit y desarrollado en gran medida por Google.
* GRAMPS - Software de genealogía.
* Inkscape - Editor de gráficos 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 edición de discos.
* Pidgin - Cliente de mensajería instantánea.
* VMware Player - Máquina virtual.
* Wireshark - Capturador y analizador de paquetes de redes computacionales.

### Entornos que utilizan GTK

* Escritorio GNOME 3.36.3
* elementary OS Hera
* Escritorio XFCE 4.14
* Escritorio Cinnamon 4.4.8
* Escritorio MATE 1.20

#### 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. 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, aunque no en todos está disponible en su última versión. Entre los más usados están los siguientes:
| Lenguaje | Nombre | Soporte | Soporte | Soporte | Soporte | Licencia | Ejemplos |
| Lenguaje | Nombre | V2 | V3 | V4 | Oficial | Licencia | Ejemplos |
| C | GTK | Sí | Sí | Sí | Sí | LGPL-2.1 | Archivos, GIMP |
| C++ | gtkmm | Sí | Sí | Sí | Sí | LGPL-2.1 | Inkscape |
| C# | Gtk sharp | Parcial | Sí | Desconocido | Sí | LGPL-2.1 | MonoDevelop, Pinta |
| D | Gtkd | Sí | Sí | Sí | No | LGPL-3 | |
| Genie | Genie | Sí | Sí | Sí | Sí | LGPL-2.1 | |
| Go | Gotk3 | No | Sí | Desconocido | No | GPL-3 | |
| Java | java-gnome | Sí | Sí | Desconocido | Sí | GPL-2 | |
| Javascript | Gjs | Sí | Sí | Sí | Sí | MIT | |
| Javascript | Seed | Sí | Sí | Sí | Sí | LGPL-2.1 | |
| Julia | Gtk.jl | Sí | Sí | Desconocido | No | MIT | |
| Perl | gtk2-perl | Sí | Sí | Sí | Sí | LGPL-2.1 | |
| Python | PyGObject | Sí | Sí | Sí | Sí | LGPL-2.1 | Pitivi |
| Rust | Gtk-rs | No | Sí | Sí | Sí | MIT | Fractal, Shortwave, Pika Backup |
| Vala | Vala | Sí | Sí | Sí | Sí | 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 programa típico de Hello World que se muestra en la imagen podría verse así:
Para compilar este código son necesarias algunas dependencias según el sistema que poseas, en caso de usar Debian o derivadas sudo apt-get install libgtk-3-dev o en caso de usar Fedora sudo dnf install gtk3-devel clutter-devel webkit2gtk3-devel libgda-devel gobject-introspection-devel. Para compilar el código, es necesario ubicarse en la ruta del archivo y escribir lo siguiente en una terminal
Para ejecutar el archivo, se escribe

### Python

Para abrir este código son necesarias algunas dependencias según el sistema que poseas, 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

## 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

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.
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.

### 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) y temas.
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. 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.
* Hong Jen Yee, desarrollador de LXDE (cuya versión GTK se eliminará y todos los esfuerzos se centraron en el puerto Qt), 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.
* El reproductor de música Audacious se mudó a Qt en la versión 3.6. 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".
* Wireshark ha cambiado a Qt debido a que no tiene una buena experiencia con el soporte multiplataforma de GTK.

## Historial de lanzamientos

Resumen de lanzamientos :
| Lanzamiento | Versión inicial | Mejoras importantes | Mejoras importantes | Mejoras importantes | Mejoras importantes | Mejoras importantes | Última versión menor |
| GTK+ 1 ||||||||
| Versión antigua, sin servicio técnico: 1.0 | 13 de abril de 1998 | Primera versión estable | Primera versión estable | Primera versión estable | Primera versión estable | Primera versión estable | 1.0.6 |
| Versión antigua, sin servicio técnico: 1.2 | 25 de febrero de 1999 | Nuevos widgets: GtkFontSelector GtkPacker GtkItemFactory GtkCTree GtkInvisible GtkCalendar GtkLayout GtkPlug GtkSocket | Nuevos widgets: GtkFontSelector GtkPacker GtkItemFactory GtkCTree GtkInvisible GtkCalendar GtkLayout GtkPlug GtkSocket | Nuevos widgets: GtkFontSelector GtkPacker GtkItemFactory GtkCTree GtkInvisible GtkCalendar GtkLayout GtkPlug GtkSocket | Nuevos widgets: GtkFontSelector GtkPacker GtkItemFactory GtkCTree GtkInvisible GtkCalendar GtkLayout GtkPlug GtkSocket | Nuevos widgets: GtkFontSelector GtkPacker GtkItemFactory GtkCTree GtkInvisible GtkCalendar GtkLayout GtkPlug GtkSocket | 1.2.10 |
| Leyenda:Versión antiguaVersión antigua, con soporte técnicoÚltima versiónÚltima versión previaLanzamiento futuro ||||||||
| GTK+ 2 ||||||||
| Versión antigua, sin servicio técnico: 2.0 | 11 de marzo de 2002 | GObject Soporte general para UTF-8 | GObject Soporte general para UTF-8 | GObject Soporte general para UTF-8 | GObject Soporte general para UTF-8 | GObject Soporte general para UTF-8 | 2.0.9 |
| Versión antigua, sin servicio técnico: 2.2 | 22 de diciembre de 2002 | Soporte de múltiples cabeceras. | Soporte de múltiples cabeceras. | Soporte de múltiples cabeceras. | Soporte de múltiples cabeceras. | Soporte de múltiples cabeceras. | 2.2.4 |
| Versión antigua, sin servicio técnico: 2.4 | 16 de marzo de 2004 | Nuevos widgets: GtkFileChooser GtkComboBox GtkComboBoxEntry GtkExpander GtkFontButton GtkColorButton | Nuevos widgets: GtkFileChooser GtkComboBox GtkComboBoxEntry GtkExpander GtkFontButton GtkColorButton | Nuevos widgets: GtkFileChooser GtkComboBox GtkComboBoxEntry GtkExpander GtkFontButton GtkColorButton | Nuevos widgets: GtkFileChooser GtkComboBox GtkComboBoxEntry GtkExpander GtkFontButton GtkColorButton | 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 | Nuevos widgets: GtkIconView GtkAboutDialog GtkCellView El último en admitir Windows 98/Me | Nuevos widgets: GtkIconView GtkAboutDialog GtkCellView El último en admitir Windows 98/Me | Nuevos widgets: GtkIconView GtkAboutDialog GtkCellView El último en admitir Windows 98/Me | Nuevos widgets: GtkIconView GtkAboutDialog GtkCellView El último en admitir Windows 98/Me | 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 | La mayoría de los widgets son renderizados por Cairo | La mayoría de los widgets son renderizados por Cairo | La mayoría de los widgets son renderizados por Cairo | La mayoría de los widgets son renderizados por Cairo | 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 | Nuevos widgets: GtkStatusIcon GtkAssistant GtkLinkButton GtkRecentChooser Soporte de impresión: GtkPrintOperation | Nuevos widgets: GtkStatusIcon GtkAssistant GtkLinkButton GtkRecentChooser Soporte de impresión: GtkPrintOperation | Nuevos widgets: GtkStatusIcon GtkAssistant GtkLinkButton GtkRecentChooser Soporte de impresión: GtkPrintOperation | Nuevos widgets: GtkStatusIcon GtkAssistant GtkLinkButton GtkRecentChooser Soporte de impresión: GtkPrintOperation | 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 | GtkBuilder | GtkBuilder | GtkBuilder | GtkBuilder | GtkBuilder | 2.12.12 |
| Versión antigua, sin servicio técnico: 2.14 | 4 de septiembre de 2008 | soporte de carga de JPEG 2000 | soporte de carga de JPEG 2000 | soporte de carga de JPEG 2000 | soporte de carga de JPEG 2000 | soporte de carga de JPEG 2000 | 2.14.7 |
| Versión antigua, sin servicio técnico: 2.16 | 13 de marzo de 2009 | Nuevo widget: GtkOrientable Advertencia de bloqueo de mayúsculas en la entrada de contraseña Mejoras en GtkScale, GtkStatusIcon, GtkFileChooser | Nuevo widget: GtkOrientable Advertencia de bloqueo de mayúsculas en la entrada de contraseña Mejoras en GtkScale, GtkStatusIcon, GtkFileChooser | Nuevo widget: GtkOrientable Advertencia de bloqueo de mayúsculas en la entrada de contraseña Mejoras en GtkScale, GtkStatusIcon, GtkFileChooser | Nuevo widget: GtkOrientable Advertencia de bloqueo de mayúsculas en la entrada de contraseña Mejoras en GtkScale, GtkStatusIcon, GtkFileChooser | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 antiguaVersión antigua, con soporte técnicoÚltima versiónÚltima versión previaLanzamiento futuro ||||||||
| GTK 3 ||||||||
| Versión antigua, sin servicio técnico: 3.0 | 10 de febrero de 2011 | 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 El primer borrador de la hoja de ruta para el desarrollo se publicó el 9 de abril de 2009 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 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 | 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 El primer borrador de la hoja de ruta para el desarrollo se publicó el 9 de abril de 2009 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 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 | 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 El primer borrador de la hoja de ruta para el desarrollo se publicó el 9 de abril de 2009 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 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 | 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 El primer borrador de la hoja de ruta para el desarrollo se publicó el 9 de abril de 2009 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 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 | 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 El primer borrador de la hoja de ruta para el desarrollo se publicó el 9 de abril de 2009 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 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 | Nuevos widgets: GtkLockButton GtkOverlay Nuevo cuadro de diálogo para selector de fuente Nuevos backends experimentales: Wayland HTML5 (llamado "Broadway") | Nuevos widgets: GtkLockButton GtkOverlay Nuevo cuadro de diálogo para selector de fuente Nuevos backends experimentales: Wayland HTML5 (llamado "Broadway") | Nuevos widgets: GtkLockButton GtkOverlay Nuevo cuadro de diálogo para selector de fuente Nuevos backends experimentales: Wayland HTML5 (llamado "Broadway") | Nuevos widgets: GtkLockButton GtkOverlay Nuevo cuadro de diálogo para selector de fuente Nuevos backends experimentales: Wayland HTML5 (llamado "Broadway") | Nuevos widgets: GtkLockButton GtkOverlay Nuevo cuadro de diálogo para selector de fuente Nuevos backends experimentales: Wayland HTML5 (llamado "Broadway") | 3.2.4 |
| Versión antigua, sin servicio técnico: 3.4 | 26 de marzo de 2012 | 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 | 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 | 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 | 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 | 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 | Nuevos widgets: GtkSearchEntry GtkMenuButton GtkLevelBar Botones de giro vertical Animaciones CSS, sombras borrosas Soporte para desvanecimiento y transiciones en temas. | Nuevos widgets: GtkSearchEntry GtkMenuButton GtkLevelBar Botones de giro vertical Animaciones CSS, sombras borrosas Soporte para desvanecimiento y transiciones en temas. | Nuevos widgets: GtkSearchEntry GtkMenuButton GtkLevelBar Botones de giro vertical Animaciones CSS, sombras borrosas Soporte para desvanecimiento y transiciones en temas. | Nuevos widgets: GtkSearchEntry GtkMenuButton GtkLevelBar Botones de giro vertical Animaciones CSS, sombras borrosas Soporte para desvanecimiento y transiciones en temas. | 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 | 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 | 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 | 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 | 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 | 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 | 3.8.9 |
| Versión antigua, sin servicio técnico: 3.10 | 23 de septiembre de 2013 | 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 | 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 | 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 | 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 | 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 | Decoraciones del lado del cliente Soporte para Wayland 1.5 Nuevo widget: GtkPopover (una alternativa a los menús y cuadros de diálogo) | Decoraciones del lado del cliente Soporte para Wayland 1.5 Nuevo widget: GtkPopover (una alternativa a los menús y cuadros de diálogo) | Decoraciones del lado del cliente Soporte para Wayland 1.5 Nuevo widget: GtkPopover (una alternativa a los menús y cuadros de diálogo) | Decoraciones del lado del cliente Soporte para Wayland 1.5 Nuevo widget: GtkPopover (una alternativa a los menús y cuadros de diálogo) | Decoraciones del lado del cliente 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 | Se introdujo GtkInspector (una copia de gtkparasite) Soporte mejorado para gestos / fusión multitáctil En desuso: 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 | Se introdujo GtkInspector (una copia de gtkparasite) Soporte mejorado para gestos / fusión multitáctil En desuso: 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 | Se introdujo GtkInspector (una copia de gtkparasite) Soporte mejorado para gestos / fusión multitáctil En desuso: 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 | Se introdujo GtkInspector (una copia de gtkparasite) Soporte mejorado para gestos / fusión multitáctil En desuso: 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 | Se introdujo GtkInspector (una copia de gtkparasite) Soporte mejorado para gestos / fusión multitáctil En desuso: 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 | 3.14.15 |
| Versión antigua, sin servicio técnico: 3.16 | 22 de marzo de 2015 | 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) Experimental Mir backend | 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) Experimental Mir backend | 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) Experimental Mir backend | 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) Experimental Mir backend | 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) Experimental Mir backend | 3.16.7 |
| Versión antigua, sin servicio técnico: 3.18 | 23 de septiembre de 2015 | 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 | 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 | 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 | 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 | 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 | Mayor integración de nodos CSS Mover arrastrar y soltar hacia GDK Nuevo widget: GtkShortcutsWindow (muestra métodos abreviados de teclado y gestos de una aplicación) | Mayor integración de nodos CSS Mover arrastrar y soltar hacia GDK Nuevo widget: GtkShortcutsWindow (muestra métodos abreviados de teclado y gestos de una aplicación) | Mayor integración de nodos CSS Mover arrastrar y soltar hacia GDK Nuevo widget: GtkShortcutsWindow (muestra métodos abreviados de teclado y gestos de una aplicación) | Mayor integración de nodos CSS Mover arrastrar y soltar hacia GDK Nuevo widget: GtkShortcutsWindow (muestra métodos abreviados de teclado y gestos de una aplicación) | Mayor integración de nodos CSS Mover arrastrar y soltar hacia GDK Nuevo widget: GtkShortcutsWindow (muestra métodos abreviados de teclado y gestos de una aplicación) | 3.20.10 (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última). |
| Versión antigua, con servicio técnico: 3.22 | 21 de septiembre de 2016 | Última versión 3.x WEl soporte para tabletas Wayland se fusionó, el soporte para tabletas gráficas se considera completo GTK 3.22 será tan estable (y por lo tanto "aburrido") como GTK 2 | Última versión 3.x WEl soporte para tabletas Wayland se fusionó, el soporte para tabletas gráficas se considera completo GTK 3.22 será tan estable (y por lo tanto "aburrido") como GTK 2 | Última versión 3.x WEl soporte para tabletas Wayland se fusionó, el soporte para tabletas gráficas se considera completo GTK 3.22 será tan estable (y por lo tanto "aburrido") como GTK 2 | Última versión 3.x WEl soporte para tabletas Wayland se fusionó, el soporte para tabletas gráficas se considera completo GTK 3.22 será tan estable (y por lo tanto "aburrido") como GTK 2 | Última versión 3.x WEl soporte para tabletas Wayland se fusionó, el soporte para tabletas gráficas se considera completo GTK 3.22 será tan estable (y por lo tanto "aburrido") como GTK 2 | por 3 años 3.22.29 |
| Versión estable actual: 3.24 | 3 de septiembre de 2018 | 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 | 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 | 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 | 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 | 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 antiguaVersión antigua, con soporte técnicoÚltima versiónÚltima versión previaLanzamiento futuro ||||||||
| Desarrollo de la serie GTK 4 ||||||||
| Versión antigua, sin servicio técnico: 3.90 | 31 de marzo de 2017 | GTK Scene Graph Kit (GSK) fusionado Eliminar cualquier API marcada como obsoleta antes (22-09-2016) vs. después Desarrollo pesado romper API y ABI Un nuevo renderizador de Vulkan aumenta el antiguo renderizador de Cairo | GTK Scene Graph Kit (GSK) fusionado Eliminar cualquier API marcada como obsoleta antes (22-09-2016) vs. después Desarrollo pesado romper API y ABI Un nuevo renderizador de Vulkan aumenta el antiguo renderizador de Cairo | GTK Scene Graph Kit (GSK) fusionado Eliminar cualquier API marcada como obsoleta antes (22-09-2016) vs. después Desarrollo pesado romper API y ABI Un nuevo renderizador de Vulkan aumenta el antiguo renderizador de Cairo | GTK Scene Graph Kit (GSK) fusionado Eliminar cualquier API marcada como obsoleta antes (22-09-2016) vs. después Desarrollo pesado romper API y ABI Un nuevo renderizador de Vulkan aumenta el antiguo renderizador de Cairo | GTK Scene Graph Kit (GSK) fusionado Eliminar cualquier API marcada como obsoleta antes (22-09-2016) vs. después Desarrollo pesado romper API y ABI Un nuevo renderizador de Vulkan aumenta el antiguo renderizador de Cairo | 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 | Como GNOME 3.26 ya se lanzó el 13 de septiembre de 2017, no estaba basado en GTK 3.92. GNU autotools fue reemplazado por Meson. | Como GNOME 3.26 ya se lanzó el 13 de septiembre de 2017, no estaba basado en GTK 3.92. GNU autotools fue reemplazado por Meson. | Como GNOME 3.26 ya se lanzó el 13 de septiembre de 2017, no estaba basado en GTK 3.92. GNU autotools fue reemplazado por Meson. | Como GNOME 3.26 ya se lanzó el 13 de septiembre de 2017, no estaba basado en GTK 3.92. GNU autotools fue reemplazado por Meson. | Como GNOME 3.26 ya se lanzó el 13 de septiembre de 2017, 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 | 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 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 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 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 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 | 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. 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 | 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. 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 | 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. 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 | 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. 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 | 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. 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 | 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 | 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 | 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 | 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 | 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 | 3.98.5 |
| Versión antigua, sin servicio técnico: 3.99.0 | 31 de julio de 2020 | Herramientas de accesibilidad actualizadas Encabezados actualizado para utilizar estándar C tipos INSTED de GLib Nuevos widgets Correcciones y mejoras | Herramientas de accesibilidad actualizadas Encabezados actualizado para utilizar estándar C tipos INSTED de GLib Nuevos widgets Correcciones y mejoras | Herramientas de accesibilidad actualizadas Encabezados actualizado para utilizar estándar C tipos INSTED de GLib Nuevos widgets Correcciones y mejoras | Herramientas de accesibilidad actualizadas Encabezados actualizado para utilizar estándar C tipos INSTED de GLib Nuevos widgets Correcciones y mejoras | 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 | Remoción de cualquier API marcada como obsoleta, es decir, al menos todo en el directorio obsoleto | Remoción de cualquier API marcada como obsoleta, es decir, al menos todo en el directorio obsoleto | Remoción de cualquier API marcada como obsoleta, es decir, al menos todo en el directorio obsoleto | Remoción de cualquier API marcada como obsoleta, es decir, al menos todo en el directorio obsoleto | Remoción de cualquier API marcada como obsoleta, es decir, al menos todo en el directorio obsoleto | |
| Leyenda:Versión antiguaVersión antigua, con soporte técnicoÚltima versiónÚltima versión previaLanzamiento futuro ||||||||