GTK (anteriormente GTK + , [4] GIMP ToolKit ) es un libre y de código abierto multiplataforma widget toolkit para la creación de interfaces gráficas de usuario (GUIs). [5] Tiene licencia bajo los términos de la Licencia Pública General Reducida de GNU , lo que permite su uso tanto por software libre como propietario . Es uno de los kits de herramientas más populares para los sistemas de ventanas Wayland y X11 . [6]
Autor (es) original (es) | Spencer Kimball y Peter Mattis |
---|---|
Desarrollador (es) | El proyecto GNOME , eXperimental Computing Facility (XCF) |
Versión inicial | 14 de abril de 1998 |
Lanzamiento estable | 4.0.3 / 7 de febrero de 2021 [1] |
Versión de vista previa | 4.1.2 / 15 de marzo de 2021 [2] |
Repositorio | |
Escrito en | C , CSS [3] |
Sistema operativo | Linux , similar a Unix , macOS , Windows |
Tipo | Kit de herramientas de widgets |
Licencia | LGPLv2.1 + |
Sitio web | gtk |
Arquitectura de software
La biblioteca GTK contiene un conjunto de elementos de control gráfico ( widgets ); la versión 3.22.16 contiene 186 widgets activos y 36 obsoletos. [7] GTK es un conjunto de herramientas de widget orientado a objetos escrito en el lenguaje de programación C ; utiliza GObject , que es el sistema de objetos GLib , para la orientación del objeto. Si bien GTK es principalmente para sistemas de ventanas basados en X11 y Wayland , funciona en otras plataformas, incluyendo Microsoft Windows (interconectado con la API de Windows ) y macOS (interconectado con Quartz ). También hay un back-end HTML5 llamado Broadway . [8] [9]
GTK se puede configurar para cambiar el aspecto de los widgets dibujados; esto se hace usando diferentes motores de visualización. Existen varios motores de visualización que intentan emular el aspecto de los widgets nativos en la plataforma en uso.
A partir de la versión 2.8, lanzada en 2005, GTK comenzó la transición al uso de Cairo para renderizar la mayoría de sus widgets de elementos de control gráfico . [10] Desde GTK versión 3.0, todo el renderizado se realiza usando Cairo. [ cita requerida ]
El 26 de enero de 2018 en DevConf.cz, Matthias Clasen brindó una descripción general del estado actual del desarrollo de GTK 4, incluida una explicación de alto nivel de cómo funcionaban el renderizado y la entrada en GTK 3, qué cambios se están realizando en GTK 4 (> 3.90) y por qué. [11] En febrero se anunció que GTK 4 eliminará el "+" del nombre del proyecto. [4]
Kit de dibujo GIMP (GDK)
GDK actúa como un envoltorio de las funciones de bajo nivel proporcionadas por los sistemas de gráficos y ventanas subyacentes.
GDK se encuentra en el /gdk
directorio.
Kit de gráficos de escena GTK (GSK)
GSK es la API de gráficos de escena y renderizado para GTK. GSK se encuentra entre los elementos de control gráfico (widgets) y el renderizado. GSK finalmente se fusionó con la versión 3.90 de GTK lanzada en marzo de 2017.
GSK se encuentra en el /gsk
directorio.
GtkInspector
GtkInspector se introdujo con la versión 3.14. [12] [13] GtkInspector solo se puede invocar después de instalar el paquete de desarrollo libgtk-3-dev / gtk + -devel .
Diseñadores de GUI
Hay varios diseñadores de GUI para GTK. Los siguientes proyectos están activos en julio de 2011:
- Glade , es compatible con GtkBuilder , que es un formato de descripción de GUI integrado en GTK.
- Gazpacho , constructor de GUI para el kit de herramientas GTK escrito en Python [14]
- Crow Designer, se basa en su propio formato GuiXml y biblioteca GuiLoader. [15]
- Stetic , parte de MonoDevelop , orientado hacia Gtk # .
- Gambas desde la versión 2.0 sobre BASIC
- Xojo en Linux
- Lazarus en Linux se conecta de forma predeterminada con GTK 2
GtkBuilder
GtkBuilder permite diseñar interfaces de usuario sin escribir código. La interfaz se describe en un archivo XML ( Extensible Markup Language ), que luego se carga en tiempo de ejecución y los objetos se crean automáticamente. Glade Interface Designer permite la creación de la interfaz de usuario en una forma de lo que ves es lo que obtienes ( WYSIWYG ). La descripción de la interfaz de usuario es independiente del lenguaje de programación utilizado.
Enlaces de idioma
Una biblioteca escrita en un lenguaje de programación puede usarse en otro lenguaje si se escriben enlaces ; GTK tiene una variedad de enlaces para varios idiomas. [dieciséis]
Gtk #
Desarrollador (es) | Xamarin |
---|---|
Versión inicial | 12 de marzo de 2004 |
Lanzamiento estable | 2.12.41 [17] / 22 de septiembre de 2016 |
Versión de vista previa | 2.99.3 (para GTK3) [17] / 6 de junio de 2014 |
Repositorio |
|
Escrito en | C # , XML , Perl , C |
Sistema operativo | Windows , macOS , Linux |
Tipo | Kit de herramientas de widgets |
Licencia | Licencia pública general reducida GNU |
Sitio web | mono-proyecto .com / GtkSharp |
Gtk # es un conjunto de enlaces de .NET Framework para el kit de herramientas de la interfaz gráfica de usuario (GUI) GTK y una variedad de bibliotecas GNOME . La biblioteca facilita la creación de aplicaciones GNOME gráficas utilizando Mono o cualquier otro Common Language Runtime (CLR) compatible . Gtk # es un sistema controlado por eventos como cualquier otra biblioteca de ventanas moderna donde cada widget permite asociar métodos de manejo, que son llamados cuando ocurren ciertos eventos.
Las aplicaciones creadas con Gtk # se ejecutarán en muchas plataformas, incluidas Linux , Windows y macOS . Los paquetes Mono para Windows incluyen GTK, Gtk # y un tema nativo para que las aplicaciones se vean como aplicaciones nativas de Windows. A partir de Mono 1.9, ejecutar aplicaciones Gtk # en macOS ya no requiere ejecutar un servidor X11 . [18]
Glade Interface Designer se puede utilizar con los enlaces Glade # para diseñar fácilmente aplicaciones GUI. Un diseñador de GUI llamado Stetic está integrado con el entorno de desarrollo integrado (IDE) MonoDevelop .
Además de admitir la pila estándar de herramientas de desarrollo GTK / GNOME, el ensamblado gtk-dotnet.dll proporciona un puente para consumir la funcionalidad disponible en la pila .NET. En este punto, esto incluye la funcionalidad para usar System.Drawing para dibujar en un widget.
A septiembre de 2020[actualizar], El soporte de Gtk # para Gtk3 permanece en la fase de vista previa y los proyectos bifurcados, como GtkSharp , se han fundado para proporcionar soporte completo de Gtk3 para C # y otros lenguajes CLI. La falta de una versión publicada de Gtk # con soporte para Gtk3 fue citada como una razón para eliminar el reproductor multimedia Banshee en Ubuntu 12.04. [19]
Desarrollo
GTK es desarrollado principalmente por The GNOME Project , que también desarrolla la plataforma de desarrollo GNOME y el entorno de escritorio GNOME. [20]
El desarrollo de GTK se gestiona de forma flexible. La discusión ocurre principalmente en varias listas de distribución públicas. [21] Los desarrolladores y usuarios de GNOME se reúnen en una reunión anual GUADEC de la Conferencia Europea de Usuarios y Desarrolladores de GNOME para discutir el estado actual y la dirección futura de GNOME. [22] GNOME incorpora estándares y programas de freedesktop.org para interoperar mejor con otros escritorios.
GTK está escrito principalmente en C . [23] Hay muchos enlaces de idiomas disponibles .
El 1 de septiembre de 2016, una publicación en el blog de desarrollo de GTK denotaba, entre otras cosas, el futuro esquema de numeración de GTK. [24] GTK versión 3.22 de otoño de 2016 será la última versión 3.x. [ aclaración necesaria ] La versión 3.24 se introdujo en el otoño de 2018 con el retraso de GTK 4. [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 como la serie 4.x entra en desarrollo, las aplicaciones notables todavía usan GTK 2.xy no se han portado a 3.22. Con respecto al futuro del software heredado que usa GTK , no hubo un proyecto colectivo para portar el software GTK 2.x a 3.22. La versión 3.24 tiene soporte a largo plazo y es la base actual y futura de programas como gimp 3.0 e Inkscape 1.0. [26] Entonces, para los desarrolladores es la opción GTK 3.24 estable con corrección de errores o GTK 4 con cambios y nuevas características en el desarrollo futuro.
Automatización de construcción
GTK (y GNOME, GLib, etc.) anteriormente utilizaba el sistema de compilación GNU (llamado Autotools) como el sistema de automatización de compilación elegido.
Desde el 14 de agosto de 2017, la rama maestra de GTK se ha creado con Meson y los archivos del sistema de compilación de Autotools se han eliminado. [27]
Crítica
La crítica más común de GTK es la falta de compatibilidad con versiones anteriores en las actualizaciones importantes, más notablemente en la interfaz de programación de aplicaciones (API) [28] y la temática. [29]
Benjamin Otte explicó que las rupturas de compatibilidad entre versiones menores durante el ciclo de desarrollo de GTK 3.x se deben a las fuertes presiones para innovar, como proporcionar las características que los usuarios modernos esperan y admitir el cada vez más influyente protocolo de servidor de pantalla Wayland . Con el lanzamiento de GTK 4, la presión de la necesidad de innovar se habrá liberado y el equilibrio entre estabilidad e innovación se inclinará hacia la estabilidad. [30] De manera similar, 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 algunas inversiones ahora deberían ser recompensadas más tarde.
- Dirk Hohndel, codesarrollador de Subsurface y miembro del Centro de tecnología de código abierto de Intel , criticó a los desarrolladores de GTK por ser agresivos e ignorar la mayoría de las solicitudes de la comunidad. [31]
- Hong Jen Yee, desarrollador de LXDE (cuya versión GTK se abandonó 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ó PCMan File Manager (PCManFM) a Qt . PCManFM se está desarrollando con GTK y con un backend Qt al mismo tiempo. [32]
- El reproductor de música Audacious se trasladó a Qt en la versión 3.6. [33] Las razones declaradas por los desarrolladores para esto incluyen una transición a las decoraciones de ventana del lado del cliente, que afirman que hacen que la aplicación parezca " GNOME -y y fuera de lugar". [34]
- Wireshark ha cambiado a Qt debido a que no tiene una buena experiencia con el soporte multiplataforma de GTK. [35]
Usar
Aplicaciones
Algunas aplicaciones notables que usan o alguna vez usaron GTK como un conjunto de herramientas de widgets incluyen:
- Aplicaciones principales de GNOME : como parte del entorno de escritorio GNOME , desarrollado en conjunto con GTK.
- AbiWord - Procesador de texto (3.0+ con GTK + 3)
- Anjuta - Entorno de desarrollo integrado (IDE) (GTK + 3)
- Ardor - Estación de trabajo de audio digital
- Chromium : navegador web (hasta la versión 34, reemplazado por Aura en la versión 35+) [ cita requerida ]
- Ekiga (anteriormente GnomeMeeting): aplicación de videoconferencia y VoIP
- GNU Emacs puede usar GTK cuando se ejecuta en X. (GTK + 3 con 24.2+)
- Evolución : administrador de información personal (GTK + 3 con 3.x, GTK 4 con la versión 40.0)
- gconfig : utilidad de configuración de fuentes del kernel de Linux .
- Geany : un editor de texto ligero multiplataforma IDE y GTK basado en Scintilla . (Versión 1.37.1 basada en GTK + 3.24.23, última con soporte de GTK + 2.20+)
- GIMP : editor de gráficos ráster (3.0 con GTK + 3, vista previa 2.99.4 de 3.0)
- Gnumeric - Aplicación de hoja de cálculo (1.12.x con GTK + 3)
- Gramps - Software de genealogía (4.0+ con GTK + 3)
- Inkscape : editor de gráficos vectoriales para SVG (1.0.x con GTK + 3)
- LiVES - Editor de video (GTK + 2.16+ o 3)
- Midori : navegador web minimalista que utiliza GTKWebKit como motor de renderizado y GTK como kit de herramientas de widgets (GTK + 3)
- Pidgin : aplicación de mensajería instantánea
Entornos de escritorio
Varios entornos de escritorio utilizan GTK como el conjunto de herramientas de widgets.
Actual
- GNOME , basado en GTK, lo que significa que los programas nativos de GNOME usan GTK
- Budgie , construido desde cero para el sucesor de SolusOS, Solus Operating System
- Cinnamon , una bifurcación de GNOME 3 y usa GTK versión 3
- MATE , una bifurcación de GNOME 2 y usa GTK 3 desde la versión 1.18
- Xfce , basado en GTK 3 desde la versión 4.14
- Pantheon usa GTK 3 exclusivamente, siendo desarrollado por elementary OS
- Sugar , un entorno de escritorio para la educación primaria de los jóvenes , que utiliza GTK, especialmente PyGTK
- KDE , aunque se basa en Qt , tiene integración con programas y temas escritos de GTK desde la versión 4.2
- Phosh , una interfaz de usuario móvil diseñada para PureOS
Inactivo
- Unity , el antiguo entorno de escritorio predeterminado de Ubuntu
- LXDE (Lightweight X11 Desktop Environment) se basa en GTK 2
- Access Linux Platform (sucesora de la plataforma Palm OS PDA )
- Consort, el modo alternativo de GNOME 3.4 - fork de SolusOS
- GPE , el entorno de bolsillo de GPE
- ROX Desktop , un escritorio liviano, con características de la GUI de RISC OS
Diverso
Los programas GTK se pueden ejecutar en entornos de escritorio basados en X11 y Wayland, o administradores de ventanas incluso aquellos que no están hechos con GTK, siempre que estén instaladas las bibliotecas necesarias; esto incluye macOS si está instalado X11.app . GTK también se puede ejecutar en Microsoft Windows , donde es utilizado por algunas aplicaciones multiplataforma populares como Pidgin y GIMP. wxWidgets , un kit de herramientas de GUI multiplataforma, usa GTK en Linux de forma predeterminada. [36] Otros puertos incluyen DirectFB (usado por el instalador de Debian , por ejemplo) y ncurses . [37]
Administradores de ventanas
Los siguientes administradores de ventanas usan GTK:
- Aewm
- AfterStep
- Amaterus
- Consorcio
- IceWM
- Marco
- Metacity
- Mollete
- Murmurar
- Pez sierra
- Wmg
- Xfwm
GtkSourceView
Para resaltar la sintaxis hay GtkSourceView , "widget de edición de código fuente". GNOME mantiene GtkSourceView por separado de GTK como una biblioteca: gtksourceview . Hay planes para cambiar el nombre a gsv.
GtkSpell
GtkSpell es una biblioteca separada de GTK. GtkSpell depende de GTK y Enchant . Enchant es un contenedor para ispell, hunspell , etc., el motor / software del corrector ortográfico real . GtkSpell utiliza el widget GtkTextView de GTK para resaltar las palabras mal escritas y ofrecer un reemplazo.
- gtkspell .sourceforge .net
Ejemplo
La documentación está disponible aquí:
- desarrollador .gnome .org / gtk4 / stable /
El siguiente código presenta una gráfica GTK hola-mundo de programas en el lenguaje de programación C . Este programa tiene una ventana con el título "¡Hola, mundo!" y una etiqueta con texto similar.
// helloworld.c #include / * Función de llamada que se llamará cuando se activa la aplicación * / static void activate_callback ( GApplication * aplicación , gpointer user_data ) { GtkWidget * ventana ; Etiqueta GtkWidget * ; / * Crea la ventana principal de nivel superior * / window = gtk_window_new (); / * Ponle el título * / gtk_window_set_title ( GTK_WINDOW ( ventana ), "¡Hola, mundo!" ); / * Establecer el tamaño predeterminado de la ventana * / gtk_window_set_default_size ( GTK_WINDOW ( ventana ), 200 , 100 ); / * Asignar la variable "etiqueta" a una nueva etiqueta GTK, * con el texto "¡Hola, mundo!" * / label = gtk_label_new ( "¡Hola, mundo!" ); / * Trazar la etiqueta en la ventana principal * / gtk_window_set_child ( GTK_WINDOW ( ventana ), etiqueta ); / * Hacer que la aplicación conozca la ventana. * El proceso de aplicación continuará ejecutándose hasta que todas las * ventanas estén cerradas * / gtk_application_add_window ( GTK_APPLICATION ( aplicación ), GTK_WINDOW ( ventana )); / * Asegúrate de que todo, ventana y etiqueta, sean visibles * / gtk_widget_show ( ventana ); }int main ( int argc , char * argv []) { / * Crea nuestra aplicación de prueba * / GtkApplication * application = gtk_application_new ( "org.wikipedia.gtktest" , 0 ); / * Conectar nuestro manejador al "activar" devolución de llamada, que será llamada * cuando la aplicación es activada por el usuario, por ejemplo, en el primer inicio * / g_signal_connect ( aplicación , "activar" , G_CALLBACK ( activate_callback ), NULL ); / * Ejecuta la aplicación y devuelve su estado * / return g_application_run ( G_APPLICATION ( aplicación ), argc , argv ); }
Necesita instalar las bibliotecas primero en Debian o derivados: $ sudo apt-get install libgtk-4-dev
Usando pkg-config en un shell de Unix , este código se puede compilar con el siguiente comando: $ cc -Wall $(pkg-config --cflags --libs gtk4) helloworld.c -o helloworld
Invocar el programa: $ ./helloworld
Historia
Linux / Unix
GTK se diseñó y usó originalmente en el Programa de manipulación de imágenes GNU (GIMP) como reemplazo del kit de herramientas Motif ; en algún momento, Peter Mattis se desilusionó con Motif y comenzó a escribir su propio juego de herramientas GUI llamado el juego de herramientas GIMP y había reemplazado exitosamente a Motif por la versión 0.60 de GIMP. [38] Finalmente GTK fue reescrito para estar orientado a objetos y fue rebautizado como GTK +. [39] Esto se utilizó por primera vez en la versión 0,99 de GIMP. GTK fue posteriormente adoptado para mantenimiento por GNOME Foundation , que lo usa en el entorno de escritorio GNOME.
La serie de lanzamientos GTK 2.0.0 introdujo nuevas características que incluyen una representación de texto mejorada usando Pango , un nuevo motor de temas , accesibilidad mejorada usando el Kit de herramientas de accesibilidad , transición a Unicode usando cadenas UTF-8 y una API más flexible. A partir de la versión 2.8, GTK 2 depende de la biblioteca de gráficos Cairo para renderizar gráficos vectoriales.
La versión 3.0.0 de GTK incluyó un manejo revisado del dispositivo de entrada, soporte para temas escritos con sintaxis similar a CSS y la capacidad de recibir información sobre otras aplicaciones GTK abiertas.
El '+' se eliminó volviendo a simplemente 'GTK' en febrero de 2019 durante un Hackathon . [40]
Mac OS
Con Quartz -Backend [41] GTK está disponible en macOS . [42]
Ventanas
- Después de GTK 2.24.10 y 3.6.4, Gnome cerró el desarrollo de Windows con el instalador. La instalación de MSYS2 en Windows es una buena forma de utilizar GTK real. [43]
- GTK 2.24.10 y 3.6.4 está disponible en Internet, pero tiene muchos errores y es limitado con respecto a las versiones reales. [44] [45]
- Tom Schoonjans prepara una versión para Windows de 64 bits con 2.24.33 (actual como Linux) y 3.24.24 (actual como Linux) a partir de enero de 2021 disponibles. [46]
- La actualización Fall Creators de Windows 10 incluye el subsistema de Windows para Linux (WSL). Con distribuciones de Linux como Ubuntu o Debian disponibles en Windows Store y un servidor X como Xming o VcXsvr, miles de programas como GTK 2 o 3 pueden ejecutarse con X o soporte de terminal.
OpenVMS
HP declaró que su objetivo era fusionar los cambios necesarios de OpenVMS en el flujo de desarrollo GTK Versión 1.3, [47] sin embargo, esto nunca se materializó. La última versión de GTK para OpenVMS es la versión 1.2.10. [48]
4.x
Una de las novedades cardinales 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 de 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 en GtkLayoutManager
En 2018-Jan-26 en DevConf.cz, Matthias Clasen ofreció una descripción general del estado actual del desarrollo de GTK 4, incluida una explicación de alto nivel de cómo funcionaban 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. [49]
Lanzamientos
Historial de versiones | |||||||
---|---|---|---|---|---|---|---|
Serie de lanzamiento | Versión inicial | Mejoras importantes | Última versión menor | ||||
GTK + 1 | |||||||
1.0 | 13 de abril de 1998 [50] | Primera versión estable | 1.0.6 | ||||
1.2 | 1999-02-25 [51] | Nuevos widgets :
| 1.2.10 | ||||
Leyenda: Versión antigua | |||||||
GTK + 2 | |||||||
2.0 | 2002-03-11 [52] | GObject Soporte general para UTF-8 | 2.0.9 | ||||
2.2 | 2002-12-22 [53] | Soporte multicabezal | 2.2.4 | ||||
2.4 | 2004-03-16 [54] | Nuevos widgets:
| 2.4.14 | ||||
2.6 | 2004-12-16 [55] | Nuevos widgets:
El último en soportar Windows 98 / Me | 2.6.10 | ||||
2.8 | 2005-08-13 [56] | La mayoría de los widgets son renderizados por Cairo. | 2.8.20 | ||||
2.10 | 2006-07-03 [57] | Nuevos widgets:
Soporte de impresión: GtkPrintOperation | 2.10.14 | ||||
2.12 | 14 de septiembre de 2007 [58] | GtkBuilder | 2.12.12 | ||||
2.14 | 2008-09-04 [59] | Soporte de carga JPEG 2000 | 2.14.7 | ||||
2.16 | 2009-03-13 [60] | Nuevo widget: GtkOrientable Advertencia de bloqueo de mayúsculas en la entrada de contraseña Mejoras en GtkScale, GtkStatusIcon, GtkFileChooser | 2.16.6 | ||||
2.18 | 2009-09-23 [61] | Nuevo widget: GtkInfoBar Mejora en el selector de archivos, impresión Para eliminar gran parte de la IPC necesaria 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 GdkWindow, que todo widget debe tener, ahora pertenece al cliente. | 2.18.9 | ||||
2,20 | 2010-03-23 [62] | Nuevos widgets:
Mejora en el selector de archivos, manejo del teclado, GDK Los datos de introspección ahora están incluidos en GTK | 2.20.1 | ||||
2.22 | 2010-09-23 [63] | GdkPixbuf movido a un módulo separado La mayoría de los dibujos de GDK se basan en El Cairo Muchos datos internos ahora son privados y se pueden sellar en preparación para GTK 3 | 2.22.1 | ||||
2,24 | 2011-01-30 [64] | Nuevo widget: GtkComboBoxText El backend de impresión CUPS puede enviar trabajos de impresión como PDF GtkBuilder ha ganado soporte para etiquetas de texto y botones de herramientas de menú y se agregaron muchas correcciones de anotaciones de introspección Migración de GTK + 2.xa GTK + 3 | 2.24.32 (08/01/2018) | ||||
Leyenda: Versión antigua Versión anterior, aún mantenida | |||||||
GTK 3 | |||||||
3,0 | 2011-02-10 [65] | 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 [66]
Completado principalmente Proyecto Ridley
Todo el renderizado se realiza usando El Cairo. GDK se volvió más agnóstico X11 XInput2, la API del tema se basa en hojas de estilo en cascada (CSS), lo que empeora el rendimiento alcanzable para velocidades de cuadro de 60 Hz | 3.0.12 | ||||
3.2 | 2011-09-25 [69] | Nuevos widgets:
Nuevo cuadro de diálogo Selector de fuentes Nuevos backends experimentales:
| 3.2.4 | ||||
3.4 | 2012-03-26 [70] | Soporte de menú en GtkApplication Un nuevo selector de color Soporte agregado para dispositivos táctiles Soporte agregado para un desplazamiento suave GtkScrolledWindow hará un 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 giratorios han recibido un nuevo aspecto Accesibilidad: se reescribe el soporte accesible de Treeview Compatibilidad con temas CSS más completa | 3.4.4 | ||||
3.6 | 2012-09-24 [71] | Nuevos widgets:
Botones de giro vertical Animaciones CSS, sombras borrosas Soporte para cross-fading y transiciones en temas. | 3.6.5 | ||||
3.8 | 25-03-2013 [72] | 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 cuadros Se agregó GdkFrameClock [73] | 3.8.9 | ||||
3.10 | 2013-09-23 [74] | Nuevos widgets:
Soporte para Wayland 1.2
Adicional:
Remoto:
Elementos de menú desprendibles, además de muchas configuraciones GTK El modelo de dibujo moderno de GTK | 3.10.9 | ||||
3.12 | 25/03/2014 [75] | Decoraciones del lado del cliente [76] Soporte para Wayland 1.5 Nuevo widget: GtkPopover (una alternativa a los menús y cuadros de diálogo) | 3.12.2 | ||||
3,14 | 2014-09-22 [77] | Se presentó GtkInspector (una copia de gtkparasite) [78] [79] Soporte mejorado para gestos / multitáctil combinado [80] [81] Obsoleto: [82]
La mayoría de los widgets se convirtieron para usar gestos internamente Wayland es compatible con el modo clásico de GNOME Shell [83] | 3.14.15 | ||||
3,16 | 2015-03-22 [84] | GDK admite renderizar ventanas usando OpenGL para X11 y Wayland usando libepoxy Nuevos widgets:
Desplazamiento revisado ( barra de desplazamiento oculta por defecto [85] ) Experimental Mir backend [86] | 3.16.7 | ||||
3,18 | 2015-09-23 [87] | Agregar infraestructura de nodo CSS Más actualización del diseño del selector de archivos y mejor búsqueda del selector de archivos Soporte de Windows XP eliminado Soporte de modelo para cuadro de lista y flujo Desplazamiento cinético del panel táctil Gestos del panel táctil (Wayland) utilidad gtk-builder-tool Ventanas de solo salida | 3.18.9 | ||||
3,20 | 2016-03-21 [88] | Mayor integración de nodos CSS [89] Mover arrastrar y soltar hasta GDK Nuevo widget: GtkShortcutsWindow (muestra los atajos de teclado y los gestos de una aplicación) | 3.20.10 | ||||
3,22 | 2016-09-21 [90] | Última versión 3.x [24] El soporte para tabletas Wayland se fusiona, [91] el soporte para tabletas gráficas se considera característica completa [92] GTK 3.22 será tan estable como una roca (y por lo tanto "aburrido") como GTK 2 [30] [93] [94] | por más de 3 años 3.22.29 | ||||
3,24 | 2018-09-03 [95] | Se suponía que 3.22 era la última versión de la serie GTK 3
Golpes de dependencia - requieren:
Nuevas funciones del selector de fuentes:
Nuevas funciones de Emoji:
Otras API nuevas: gdk_window_move_to_rect Wayland: usa memoria compartida anónima en FreeBSD Controladores de eventos backportados de GTK 4:
Desaproveche algunas API que ya no están en GTK 4:
| 3.23.0 3.23.1 3.23.2 3.23.3 3.24.0 … 3.24.5 3.24.14 … 3.24.29 | ||||
Leyenda: Versión antigua Versión anterior, aún mantenida Ultima versión | |||||||
GTK 4 | |||||||
3,90 | 2017-03-31 [96] | Kit de gráficos de escena GTK (GSK) combinado [97] Eliminar cualquier API marcada como obsoleta
Desarrollo pesado
Un nuevo Vulkan -renderer aumenta el antiguo Cairo -renderer [98] | 3.89.1 3.89.2 | ||||
3,92 | 2017-10-18 [99] [100] | Como GNOME 3.26 ya se lanzó el 13 de septiembre de 2017, [101] no estaba basado en GTK 3.92. Las herramientas automáticas GNU fueron reemplazadas por Meson . | 3.91.0 3.91.1 | ||||
3,94 | 2018-06-26 [102] | 3,93
GdkWindow renombrado a GdkSurface Nueva abstracción para contenido dibujable: GdkPaintable Hay soporte para mostrar medios con:
| 3,93 3,94,0 | ||||
3,96 | 7 de mayo de 2019 [103] | La El comando gtk4-builder-tool simplify ha obtenido una--3to4opción para convertir archivos de interfaz de usuario GTK3 a GTK4; aunque con los menús AMTK, las barras de herramientas u otros objetos como GtkShortcutsWindow se crean mediante programación (no con un archivo * .ui), sino con API convenientes. [104] GtkWidget ahora puede usar un GtkLayoutManager para la asignación de tamaño
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 utilizan como entrada:
| 3.96.0 | ||||
3,98 | 10/02/2020 [103] |
| 3.98.5 | ||||
3.99.0 | 2020-07-31 [2] |
| 3.99.4 | ||||
4.0 | 2020-12-16 [107] | 4.0.2 | |||||
4.2 | 30 de marzo de 2021 [108] | ||||||
Leyenda: Versión antigua Versión anterior, aún mantenida Ultima versión Última versión de vista previa Lanzamiento futuro |
El equipo de GNOME lanza nuevas versiones de forma regular. [97]
Ver también
- Decoración del lado del cliente
- Lista de kits de herramientas de widgets
- GDK : el kit de dibujo de GIMP se encuentra entre la biblioteca xlib y GTK, y maneja la representación básica, como primitivas de dibujo, gráficos de trama (mapas de bits), cursores, fuentes, así como eventos de ventana y funcionalidad de arrastrar y soltar.
- gtkmm - enlaces C ++ para GTK
- Qt : conjunto de herramientas y marco multiplataforma
- Xojo - herramienta y marco de desarrollo multiplataforma
- Bibliotecas de Enlightenment Foundation (EFL): conjunto de herramientas de widgets escrito para el administrador de ventanas de Enlightenment
- FLTK : un kit de herramientas de widget ligero, multiplataforma y no nativo
- Kit de herramientas de FOX : un kit de herramientas de widgets rápido, de código abierto y multiplataforma
- IUP : un conjunto de herramientas multiplataforma para crear interfaces gráficas de usuario nativas
- Ultimate ++
- Biblioteca de componentes visuales (VCL)
- Vala : un lenguaje de programación orientado a objetos con un compilador autohospedado que genera código C y utiliza el sistema GObject.
- wxWidgets : un conjunto de herramientas de GUI multiplataforma cuyo objetivo es utilizar directamente la API gráfica nativa de cada plataforma siempre que sea posible.
Referencias
- ^ Clasen, Matthias (7 de febrero de 2021). "gtk 4.0.3" . Versiones de FTP (lista de correo) . Consultado el 7 de febrero de 2021 .
- ^ a b c Clasen, Matthias (15 de marzo de 2021). "gtk 4.1.2" . Versiones de FTP (lista de correo) . Consultado el 21 de marzo de 2021 .
- ^ "El proyecto de código abierto GTK en Open Hub: página de idiomas" . www.openhub.net .
- ^ a b Bassi, Emmanuele (6 de febrero de 2019). "Cambiar el nombre del proyecto a" GTK " " . mail.gnome.org . Lista de distribución de GNOME . Consultado el 7 de febrero de 2019 .
- ^ El equipo GTK +. "Funciones GTK +" . Consultado el 8 de septiembre de 2014 .
- ^ "Documentación" . www.x.org .
- ^ "Manual de referencia GTK + 3" . Consultado el 15 de julio de 2017 .
- ^ "Utilizando GTK + con Broadway" . Desarrollador GNOME . GNOME . Consultado el 6 de marzo de 2018 .
- ^ "Broadway - Wiki de simbiosis / simbiosis de GitHub" . GitHub . Consultado el 6 de marzo de 2018 .
- ^ "GTK + para utilizar Cairo Vector Engine" . Consultado el 27 de diciembre de 2009 .
- ^ "Matthias Clasen DevConf.cz 2018 habla sobre GTK + 4" (PDF) . 26 de enero de 2018.
- ^ "Presentación de GtkInspector" . 15 de mayo de 2014.
- ^ "Otra actualización de GtkInspector" . 11 de julio de 2014.
- ^ "Debian - Resultados de búsqueda de paquetes - gazpacho" . packages.debian.org .
- ^ "Nothing-personal - Un sitio de desarrollo para Crow Designer, GuiLoader y Rally - Google Project Hosting" . Archivado desde el original el 24 de enero de 2013 . Consultado el 17 de febrero de 2014 .
- ^ El equipo GTK +. "Enlaces de idioma GTK +" . www.gtk.org . Consultado el 3 de junio de 2017 .
- ^ a b "Gtk # es un enlace Mono / .NET para el kit de herramientas Gtk + GUI multiplataforma y la base de la mayoría de las aplicaciones GUI creadas con Mono: mono / gtk-sharp" . 16 de noviembre de 2019 - a través de GitHub.
- ^ "Descarga Gtk #" . El Proyecto GTK +.
- ^ " ' Bansheegeddon' puede ver Banshee, Mono eliminado de Ubuntu predeterminado" . ITWorld . Consultado el 31 de agosto de 2015 .
- ^ "Análisis FODA rápido de GNOME" . El proyecto GNOME . Consultado el 18 de marzo de 2014 .
- ^ "Listas de correo GTK + y GNOME" . El proyecto GNOME . Consultado el 4 de diciembre de 2011 .
- ^ "Acerca de" . Conferencia europea de usuarios y desarrolladores de GNOME ( GUADEC ). Archivado desde el original el 4 de octubre de 2011 . Consultado el 3 de diciembre de 2011 .
- ^ "Idiomas GNOME" . Ohloh . Software Black Duck . Consultado el 22 de mayo de 2014 .
- ^ a b "Versión y promesa de estabilidad a largo plazo en GTK" . Blog de desarrollo GTK. 1 de septiembre de 2016.
- ^ https://www.phoronix.com/scan.php?page=news_item&px=GTK-3.24-Coming-This-Fall
- ^ https://wiki.gimp.org/wiki/Roadmap
- ^ "El sistema de compilación cambia la rama maestra de GTK" . mail.gnome.org .
- ^ "¿Cómo se crea una aplicación Gtk +? - Morten Welinder" . blogs.gnome.org . Consultado el 3 de junio de 2017 .
- ^ mclasen (20 de noviembre de 2015). "Una actualización GTK +" . Continúa .
- ^ a b "GUADEC2013: Benjamin Otte habla de GTK +" . GUADEC .
- ^ Larabel, Michael (12 de enero de 2014). "El mayor problema con GTK y lo que Qt hace bien" . Phoronix . Consultado el 10 de septiembre de 2014 .
- ^ Hong Jen Yee (26 de marzo de 2013). "PCManFM Qt 0.1.0 lanzado" . Consultado el 10 de septiembre de 2014 .
- ^ "Audacious - Un reproductor de audio avanzado" . audacious-media-player.org .
- ^ Lindgren, John (6 de mayo de 2014). "Decoraciones de ventanas feas y cómo arreglarlas (GTK 3.12)" . Consultado el 21 de octubre de 2014 .
- ^ Gerald Combs (15 de octubre de 2013). "Cambiamos a Qt" . Consultado el 19 de agosto de 2015 .
- ^ "GTK +" . WxWidgets en comparación con otros kits de herramientas .
- ^ "Puerto GTK + TTY" . Slashdot . Consultado el 31 de agosto de 2010 .
- ^ "LinuxWorld - ¿Adónde fueron Spencer Kimball y Peter Mattis?" . Archivado desde el original el 17 de abril de 1999 . Consultado el 19 de agosto de 2013 .CS1 maint: bot: estado de URL original desconocido ( enlace )
- ^ "¿Qué es + en GTK +?" . 2011. Archivado desde el original el 26 de marzo de 2012 . Consultado el 18 de marzo de 2014 .
- ^ "Cambiar el nombre de algunas referencias a GTK + (d080be3e) · Confirmaciones · GNOME / gtk" . GitLab .
- ^ "Proyectos / GTK / OSX - ¡Wiki de GNOME!" . wiki.gnome.org .
- ^ "Descarga GTK: Mac OS X" . www.gtk.org .
- ^ "Descarga GTK: Windows" . www.gtk.org .
- ^ "GTK + para el entorno de ejecución de Windows" . SourceForge .
- ^ "GTK +" . www.tarnyko.net .
- ^ "GTK + para Windows Runtime Environment Installer (bifurcación de http://gtk-win.sourceforge.net): tschoonj / GTK-for-Windows-Runtime-Environment-Installer" . 19 de noviembre de 2020 - a través de GitHub.
- ^ http://h41379.www4.hpe.com/openvms/products/ips/gtk.html
- ^ http://h41379.www4.hpe.com/openvms/products/ips/gtk_down.html
- ^ https://mclasen.fedorapeople.org/gtk4-devconf2018.pdf
- ^ Amundson, Shawn T. (13 de abril de 1998). "ANUNCIO: ¡Lanzamiento de GTK + 1.0.0!" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Amundson, Shawn T. (25 de febrero de 1999). "ANUNCIO: GTK + y GLib 1.2.0 liberados" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Taylor, Owen (11 de marzo de 2002). "GTK + -2.0.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Taylor, Owen (22 de diciembre de 2002). "GTK + -2.2.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Taylor, Owen (16 de marzo de 2004). "GTK + -2.4.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (16 de diciembre de 2004). "GTK + -2.6.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (13 de agosto de 2005). "GTK + 2.8.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (3 de julio de 2006). "GTK + 2.10 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (14 de septiembre de 2007). "GTK + 2.12 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (4 de septiembre de 2008). "GTK + 2.14.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (13 de marzo de 2009). "GTK + 2.16.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (23 de septiembre de 2009). "GTK + 2.18.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (23 de marzo de 2010). "GTK + 2.20.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (23 de septiembre de 2010). "GTK + 2.22.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (20 de enero de 2011). "GTK + 2.24.0" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (10 de febrero de 2011). "GTK + 3.0.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ "Gtk + 3.0 Theming API Hackfest" . Silicon Island . Consultado el 3 de junio de 2017 .
- ^ "Borrador de la hoja de ruta de Gtk + 3" . Consultado el 3 de junio de 2017 .
- ^ "Ático / ProjectRidley - ¡Wiki de GNOME!" . wiki.gnome.org .
- ^ Clasen, Matthias (25 de septiembre de 2011). "GTK + 3.2.0" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (26 de marzo de 2012). "GTK + 3.4.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (24 de septiembre de 2012). "GTK + 3.6.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (25 de marzo de 2013). "GTK + 3.8.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ "Frame clock: GDK 3 Reference Manual" . developer.gnome.org .
- ^ Clasen, Matthias (23 de septiembre de 2013). "GTK + 3.10.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (25 de marzo de 2014). "GTK + 3.12 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ "Decoraciones del lado del cliente en temas | Continuando" .
- ^ Clasen, Matthias (22 de septiembre de 2014). "GTK + 3.14.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Matthias Clasen (15 de mayo de 2014). "Entrada de blog del autor de GtkInspector" . Consultado el 17 de mayo de 2014 .
- ^ "GtkInspector en la wiki de GNOME" . 15 de mayo de 2014 . Consultado el 17 de mayo de 2014 .
- ^ "Fusionando gestos en 3,14" . 23 de mayo de 2014 . Consultado el 23 de mayo de 2014 .
- ^ "RFC: gestos" . 4 de marzo 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, Matthias (22 de marzo de 2015). "GTK + 3.16.0 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ en línea, heise. "Linux-Desktop: Neues Gnome zeigt Nachrichten oben" . heise en línea . Consultado el 3 de junio de 2017 .
- ^ "GTK + 3.16.0 lanzado" . mail.gnome.org . Consultado el 3 de junio de 2017 .
- ^ Nestor, Marius (24 de septiembre de 2015). "GTK + 3.18.0 lanzado oficialmente como parte del entorno de escritorio GNOME 3.18" . Softpedia . Consultado el 25 de mayo de 2019 .
- ^ Clasen, Matthias (21 de marzo de 2016). "GTK + 3,20" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ "GTK + 3.20 - Clases de estilo y nombres de elementos" . 20 de noviembre de 2015.
- ^ Clasen, Matthias (21 de septiembre de 2016). "GTK + 3.22 lanzado" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ "Se fusiona el soporte de la tableta GTK + Wayland - Carlos Garnacho" .
- ^ "entrada del hutterer" . www.x.org .
- ^ a b "Gtk 4.0 no será estable hasta Gtk 4.6" . 13 de junio de 2016.
- ^ a b "Gtk 5.0 no será estable hasta Gtk 5.6" . 14 de junio de 2016.
- ^ Clasen, Matthias (3 de septiembre de 2018). "gtk + 3.24.0" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (31 de marzo de 2017). "gtk + 3.90.0" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ a b "Proyectos / GTK / Hoja de ruta - ¡Wiki de GNOME!" . wiki.gnome.org .
- ^ "Confirma · maestro · GNOME / gtk" . GitLab .
- ^ Clasen, Matthias (18 de octubre de 2017). "gtk + 3.92.1" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ Clasen, Matthias (23 de octubre de 2017). "GTK + 3,92" . Blog de desarrollo GTK . Consultado el 25 de mayo de 2019 .
- ^ "GNOME 3.26 publicado" . 13 de septiembre de 2017.
- ^ Clasen, Matthias (26 de junio de 2018). "gtk + 3.94.0" . Servicios de correo GNOME (lista de correo) . Consultado el 20 de mayo de 2019 .
- ^ a b Clasen, Matthias (7 de mayo de 2019). "GTK 3,96" . Servicios de correo GNOME (lista de correo) . Consultado el 28 de mayo de 2019 .
- ^ "Presentación de amtk" .
- ^ Clasen, Matthias (13 de febrero de 2020). "GTK 3,98" . Blog de desarrollo GTK + . Consultado el 18 de febrero de 2020 .
- ^ "Plataformas de diapositivas GUADEC 2020" .
- ^ Clasen, Matthias (16 de diciembre de 2020). "gtk 4.0.0" . Servicios de correo GNOME (lista de correo) . Consultado el 16 de diciembre de 2020 .
- ^ Clasen, Matthias (30 de marzo de 2021). "gtk 4.2.0" . Servicios de correo GNOME (lista de correo) . Consultado el 30 de marzo de 2021 .
Bibliografía
- Krause, Andrew (23 de abril de 2007), Foundations of GTK + Development (1ª ed.), Apress , ISBN 978-1-59059-793-4
- Wright, Peter (15 de mayo de 2000), Beginning GTK + and GNOME (1st ed.), Peer Information , ISBN 978-1-86100-381-2
- Logan, Syd (6 de septiembre de 2001), Gtk + Programming in C (1ª ed.), Prentice Hall , ISBN 978-0-13-014264-1
enlaces externos
- Página web oficial