GTK | |
---|---|
Tipo de | marco de aplicación [d] y biblioteca de widgets [d] |
Autor |
El equipo GTK+, autores originales: Peter Mattis, Spencer Kimball, Josh MacDonald [1] |
Desarrollador | Fundación GNOME y el Proyecto GNU [2] |
Escrito en | C [4] |
Sistema operativo | GNU/Linux , macOS , sistema operativo similar a Unix , Microsoft Windows y Linux |
Idiomas de la interfaz | varios idiomas [d] |
Primera edición | 14 de abril de 1998 |
plataforma de hardware | multiplataforma |
ultima versión |
|
Estado | activo |
Licencia | LGPL-2.1 [d] [5][6]yGNU LGPL |
Sitio web | gtk.org_ _ |
Archivos multimedia en Wikimedia Commons |
GTK (anteriormente GTK+ [7] ; abreviatura de GIMP ToolKit ) es una biblioteca de interfaz multiplataforma (marco) con una API fácil de usar , junto con Qt , es una de las dos bibliotecas más populares para Wayland y X Window . Sistema hoy .
Originalmente parte del editor de gráficos GIMP , se ha convertido en un proyecto separado y ganó una notable popularidad. GTK es software libre distribuido bajo los términos de GNU LGPL , que le permite crear software libre y propietario utilizando la biblioteca. GTK es la biblioteca oficial de creación de GUI para el Proyecto GNU . [ocho]
Número de versión | Fecha de lanzamiento de la versión | Cambios significativos | última versión menor |
---|---|---|---|
1.0 | 14 de abril de 1998 | Primera versión estable | 1.0.6 |
1.2 | 27 de febrero de 1999 | Nuevos widgets (GtkFontSelector, GtkPacker, GtkItemFactory, GtkCTree, GtkInvisible, GtkCalendar, GtkLayout, GtkPlug, GtkSocket) |
1.2.10 |
2.0 | 11 de marzo de 2002 | GObject, Universal Unicode UTF-8 | 2.0.9 |
2.2 | 22 de diciembre de 2002 | Soporte multicabezal | 2.2.4 |
2.4 | 16 de marzo de 2004 | Nuevos widgets (GtkFileChooser, GtkComboBox, GtkComboBoxEntry, GtkExpander, GtkFontButton, GtkColorButton) |
2.4.14 |
2.6 | 16 de diciembre de 2004 | Nuevos widgets (GtkIconView, GtkAboutDialog, GtkCellView); esta es la última versión compatible con Windows 98 / ME |
2.6.10 |
2.8 | 13 de agosto de 2005 | Integración de El Cairo | 2.8.20 |
2.10 | 3 de julio de 2006 | Nuevos widgets (GtkStatusIcon, GtkAssistant, GtkLinkButton, GtkRecentChooser) y soporte de impresión (GtkPrintOperation) |
2.10.14 |
2.12 | 14 de septiembre de 2007 | ConstructorGtk | 2.12.12 |
2.14 | 4 de septiembre de 2008 | Soporte de descarga de JPEG 2000 | 2.14.7 |
2.16 | 13 de marzo de 2009 | Nuevo GtkOrientable, se muestra una advertencia en el campo de ingreso de contraseña cuando está habilitado Bloq Mayús , mejoras en GtkScale, GtkStatusIcon, GtkFileChooser. |
2.16.6 |
2.18 | 23 de septiembre de 2009 | Nueva GtkInfoBar. Mejoras en diálogo de selección de archivos, impresión. GDK se ha reescrito para usar 'ventanas del lado del cliente' |
2.18.9 |
2.20 | 23 de marzo de 2010 | Nuevos GtkSpinner y GtkToolPalette, GtkOffscreenWindow. Mejoras en el diálogo de selección de archivos, manejo del teclado, GDK. Datos de introspección de GObject incluidos |
2.20.1 |
2.22 | 23 de septiembre de 2010 | gdk-pixbuf separado en un módulo separado, la mayoría de las funciones de dibujo ahora las realiza Cairo |
2.22.1 |
2.24 | 30 de enero de 2011 | Nuevo widget ComboBox simplificado (GtkComboBoxText), el backend de impresión CUPS puede enviar trabajos a PDF, GtkBuilder tiene soporte para etiquetas de texto, muchas correcciones a los símbolos de introspección |
2.24.0 |
3.0 | 10 de febrero de 2011 | El renderizado ahora está completamente a cargo de Cairo , una abstracción de X11, usando XInput2, soporte para máscaras tipo CSS |
3.0.12 |
3.2 | 25 de septiembre de 2011 | Nuevos backends experimentales de Wayland y HTML5 , nuevo cuadro de diálogo de selección de fuentes, nuevos widgets: GtkLockButton y GtkOverlay |
3.2.4 |
3.4 | 26 de marzo de 2012 | Compatibilidad con pantallas táctiles, incluida multitáctil, compatibilidad con desplazamiento suave, compatibilidad mejorada con Windows, MacOS X, API ampliada para temas visuales |
3.4.4 |
3.6 | 24 de septiembre de 2012 | Nuevos widgets: GtkSearchEntry, GtkMenuButton, GtkLevelBar. Los botones de entrada de números GtkSpinButton ahora se pueden colocar verticalmente. Soporte para animaciones CSS, sombras borrosas. |
3.6.5 |
3.8 | 13 de mayo de 2013 | Compatibilidad con Wayland 1.0, rediseño de backend de Broadway GDK, gestión de geometría y temas mejorados. Se agregó soporte para ventanas emergentes, se ha realizado un trabajo extenso para mejorar el rendimiento |
3.8.9 |
3.10 | 23 de septiembre de 2013 | Nuevos widgets (GtkHeaderBar, GtkPlacesSidebar, GtkStack, GtkStackSwitcher, GtkRevealer, GtkSearchBar, GtkListBox). Compatibilidad con Wayland 1.2 (maximización, cursores animados, múltiples monitores, configuraciones, superficies personalizadas y sincronización de cuadros) |
3.10.9 |
3.12 | 25 de marzo de 2014 | Compatibilidad con Wayland 1.5; Nuevos widgets (Popover, GtkActionBar, GtkFlowBox). Soporte de menú global mejorado en OS X. | 3.12.2 |
3.14 | 22 de septiembre de 2014 | Compatibilidad con Wayland 1.6; Integración del depurador interactivo GtkInspector. Se suspendió la compatibilidad con los widgets GdkColor, GtkMisc, GtkArrow, GtkStatusIcon, GtkNumerableIcon y GtkThemingEngine. | 3.14.6 |
3.16 | 22 de marzo de 2015 | Soporte integrado de GDK para dibujar ventanas a través de OpenGL para X11 y Wayland a través de libepoxy usando GLX o EGL, nuevos widgets (GtkGLArea, GtkStackSidebar, GtkModelButton, GtkPopoverMenu), soporte Experimental Mir . | 3.16.0 |
3.18 | 22 de noviembre de 2015 | Diseño de selección de archivos actualizado, soporte eliminado para Windows XP | 3.18.5 |
3.20 | 21 de marzo de 2016 | Sistema de nodos CSS implementado, nuevo widget GtkShortcutsWindow | 3.20.3 (enlace no disponible) |
3.22 | 20 de septiembre de 2016 | Se agregó la API GtkPadController para manejar gestos desde tabletas, nuevo widget GtkShortcutLabel, tecnología Flatpak integrada | 3.22.0 |
4.0 | 16 de diciembre de 2020 [9] | Lanzamiento del kit de herramientas de gráficos GTK 4.0 | 4.0.3 |
4.2 | 30 de marzo de 2021 [10] | Lanzamiento del kit de herramientas de gráficos GTK 4.2 | 4.2.1 |
4.4 | 23 de agosto de 2021 [11] | Lanzamiento del kit de herramientas gráficas GTK 4.4 | 4.4.0 |
4.6 | 30 de diciembre de 2021 [12] | Kit de herramientas de gráficos GTK 4.6 disponible | 4.6.2 |
GTK+ está escrito en C , pero sin embargo está orientado a objetos [13] . Una de las razones para elegir C como lenguaje fue el deseo de construir fácilmente interfaces para otros lenguajes de programación . Como resultado, GTK+ se puede escribir en los siguientes lenguajes de programación:
Idioma | Nombre | Apoyo |
---|---|---|
ada | GtkAda | Soporte parcial hasta 2.18 |
C | GTK+ | Construido en |
C++ | gtkmm | Sí |
C# y otros lenguajes de programación .NET |
gtk # | Soporte parcial hasta 2.20 |
D | gtkD | El soporte de GTK2 fue gtkD-1.7.4, después - GTK3 (más Cairo , Gda , Gl , GStreamer ) |
Erlang | gtkNodo | Soporte parcial hasta 2.16 |
Fortran | gtk-fortran | Soporte parcial hasta 2.24 / 3.0 |
Vamos | ir-gtk | Apoyo parcial (33%) [14] |
TROZO | idiomas escritos para el sistema GObject . | Sí |
Genio | idiomas escritos para el sistema GObject . | Sí |
Haskell | gtk2hs | Sí |
GratisBÁSICO | GTK+tabaco2 | Soporte parcial antes de 2.22: También soportado por GTK3 |
pascual libre | (encabezado) integrado en la distribución principal | GTK 2.16 con soporte posterior parcial |
Java | Java-gnomo | Soporte parcial hasta 2.20 (no disponible en Windows) |
JavaScript | semilla / GJS | Sí |
Lúa | lgob | Soporta todas las versiones a partir de 2.16 |
Ceceo | cl-cffi-gtk | |
Lúa | LuaGtk | Soporte parcial hasta 2.16 |
Nodo.js | nodo-gtk | Sí |
OCaml | EtiquetaGTK | Soporte parcial hasta 2.16 |
Perl | Perl-Gtk3 | Sí |
PHP | PHP GTK | Soporte parcial hasta 2.20 |
PureBasic | gtk2 | Sí |
Pitón | GObject : introspección a través de PyGI , anteriormente PyGTK | Sí |
R | RGtk2 | Soporte parcial hasta 2.12 |
rubí | ruby-gtk2 | Sí |
Charla | Smalltalk GTK | GNU Smalltalk , Smalltalk YX , Squeak |
tcl | Gnocl | Sí |
Vala | idiomas escritos para el sistema GObject . | Sí |
En realidad, GTK+ consta de dos componentes: GTK y GDK . El primero contiene un conjunto de elementos de interfaz de usuario o " widgets " (como un botón , una lista, un campo de entrada de texto , etc. ) para varias tareas. El GDK es responsable de la salida de pantalla y puede usar las funciones del sistema X Window , Wayland , Linux Framebuffer , WinAPI o Mac OS X para hacer esto . Desde la versión 2.8, GDK ha sido reemplazado en gran medida (pero no completamente) por el sistema de representación de gráficos vectoriales Cairo .
Además de Cairo, GTK+ depende de tres bibliotecas: GLib , Pango y ATK , que se desarrollan junto con GTK+ pero que también se pueden usar por separado. [ocho]
El usuario y/o el programador pueden configurar la apariencia de las GUI creadas con GTK+. En este caso, no solo se configuran los colores y las fuentes, sino también la forma en que se muestran los distintos elementos. Esto se logra mediante el uso de " motores " para la visualización. Al conectar otro motor, puede cambiar radicalmente la apariencia de los programas. Por ejemplo, algunos motores pueden usar una vista pseudo 3D , otros una vista más "plana", etc.
Los escritorios GNOME y Xfce están basados en GTK+ . Los programas que utilizan GTK+ pueden ejecutarse en otros entornos como KDE y LXQt . Además, GTK+ también puede ejecutarse en sistemas operativos de las familias Microsoft Windows y Mac OS X.
GTK+ también ha sido elegido como la principal biblioteca de creación de interfaz de usuario para Mono (un puerto de Microsoft.NET para Linux). [quince]
La siguiente es una lista incompleta (porque GTK es demasiado popular) de proyectos que usan GTK:
Entornos de escritorio que utilizan GTK+GTK versión 3.0.0 revisó el manejo de dispositivos de entrada, incluyó soporte para temas escritos con sintaxis similar a CSS y agregó la capacidad de obtener información de otras aplicaciones GTK abiertas.
El desarrollo de la próxima versión de GTK+ comenzó en febrero de 2009 en el GTK+ Theming Hackfest en Dublín [16] . El primer borrador del plan de desarrollo fue publicado el 9 de abril de 2009 [17] .
El 10 de febrero de 2011 se lanzó GTK+ 3.0.0.
¡ Un simple hola mundo! » en GTK+ en Linux
/* Incluir la biblioteca GTK+ */ # incluir <gtk/gtk.h> int principal ( int argc , char * argv []) { /* Declarar widgets */ GtkWidget * etiqueta ; // Etiqueta GtkWidget * ventana ; // Ventana principal /* Inicializar GTK+ */ gtk_init ( & argc , & argv ); /* Crea la ventana principal */ ventana = gtk_window_new ( GTK_WINDOW_TOPLEVEL ); /* Establece el título de la ventana en "¡Hola mundo!" */ gtk_window_set_title ( GTK_WINDOW ( ventana ), "¡Hola mundo!" ); /* Crea una etiqueta con el texto "¡Hola mundo!" */ etiqueta = gtk_label_new ( "¡Hola mundo!" ); /* Insertar una etiqueta en la ventana principal */ gtk_container_add ( GTK_CONTAINER ( ventana ), etiqueta ); /* Mostrar ventana junto con widgets */ gtk_widget_show_all ( ventana ); /* Conectar la señal de terminación a la salida del programa */ g_signal_connect ( G_OBJECT ( ventana ), "destruir" , G_CALLBACK ( gtk_main_quit ), NULL ); /* La aplicación entra en un bucle eterno esperando las acciones del usuario */ gtk_main (); devolver 0 ; }Para compilar el ejemplo, debe ejecutar el comando:
gcc nombre_archivo.c -o nombre_archivo `pkg-config --cflags --libs gtk+-3.0`En Windows, puede compilar el ejemplo usando MinGW con el siguiente comando:
i686-pc-mingw32-gcc file_name.c `PKG_CONFIG_LIBDIR=yes PKG_CONFIG_PATH=/usr/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig/ pkg-config --cflags --libs gtk+-3.0`GNOMO | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Aplicaciones |
| ||||||||||||||||
Aplicaciones |
| ||||||||||||||||
Componentes | |||||||||||||||||
Arquitectura de plataforma |
| ||||||||||||||||
Comunidad | |||||||||||||||||
Gente | |||||||||||||||||
|
de elementos GUI | Juegos de herramientas (conjuntos)|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nivel bajo |
| ||||||||||||||||||||||||||
alto nivel |
|