Este artículo proporciona una lista de conjuntos de herramientas de widgets (también conocidos como marcos de GUI ), utilizados para construir la interfaz gráfica de usuario (GUI) de los programas, organizados según su relación con varios sistemas operativos .
Kits de herramientas de widgets de bajo nivel
Integrado en el sistema operativo
- Mac OS X utiliza Cocoa . Mac OS 9 y Mac OS X solían utilizar Carbon para aplicaciones de 32 bits .
- La API de Windows utilizada en Microsoft Windows . Microsoft tenía las funciones gráficas integradas en el núcleo hasta 2006 [ 1 ].
- El sistema operativo Haiku utiliza una versión ampliada y modernizada de la API Be , empleada por su predecesor BeOS . Se prevé que Haiku deje de ser compatible con BeOS en el futuro, lo que dará lugar a una API propia.
Como una capa separada sobre el sistema operativo
- El sistema X Window contiene bloques de construcción primitivos, llamados Xt o "Intrínsecos", pero estos solo los utilizan principalmente kits de herramientas más antiguos, como OLIT , Motif y Xaw . La mayoría de los kits de herramientas contemporáneos, como GTK o Qt , los omiten y utilizan Xlib o XCB directamente.
- La biblioteca Intuition de Amiga OS estaba presente anteriormente en la ROM Kickstart de Amiga y se integraba con una biblioteca de widgets de nivel medio-alto que invocaba la interfaz gráfica nativa Workbench de Amiga . Desde Amiga OS 2.0, Intuition.library pasó a estar basada en disco y orientada a objetos. Asimismo, Workbench.library e Icon.library también se basaron en disco y pudieron reemplazarse con soluciones similares de terceros.
- Desde 2005, Microsoft ha extraído el sistema gráfico del núcleo de Windows. [ 2 ]
Kits de herramientas de widgets de alto nivel
Dependencia del sistema operativo
En Amiga
- BOOPSI (Sistema Básico de Programación Orientada a Objetos para Intuition) se introdujo con OS 2.0 y mejoró Intuition con un sistema de clases en el que cada clase representa un único widget o describe un evento de interfaz. Esto dio lugar a una evolución en la que desarrolladores externos crearon sus propios sistemas de clases.
- MUI : kit de herramientas GUI orientado a objetos y el kit de herramientas oficial para MorphOS .
- ReAction : kit de herramientas GUI orientado a objetos y el kit de herramientas oficial para AmigaOS .
- Zune (kit de herramientas GUI) es un clon de código abierto de MUI y el kit de herramientas oficial para AROS .
En macOS
- Cocoa , utilizado en macOS (véase también Aqua ) , es compatible con Windows gracias a su origen en OpenStep , aunque no se anuncia públicamente como tal. Generalmente, no está disponible para desarrolladores externos. Sin embargo , existe una versión de código abierto de Cocoa, obsoleta y con funciones limitadas, dentro del proyecto WebKit ; se utiliza para renderizar Aqua de forma nativa en Safari (navegador web) para Windows. iTunes de Apple , compatible con GDI y WPF, incluye una versión binaria casi completa del framework como "Apple Application Support".
- Carbon : el marco de trabajo obsoleto que se utilizaba en Mac OS X para portar aplicaciones y software "clásicos" de Mac a Mac OS X.
- MacApp , el marco de trabajo para el sistema operativo Mac OS clásico de Apple.
- PowerPlant , el framework para el sistema operativo Mac OS clásico de Metrowerks.
- Las Microsoft Foundation Classes (MFC) son una capa de abstracción en C++ que encapsula la API de Windows.
- La Biblioteca de plantillas de Windows (WTL), una extensión basada en plantillas para ATL y un reemplazo de MFC.
- La Biblioteca de Ventanas de Objetos (OWL), la alternativa de Borland a MFC.
- La Biblioteca de Componentes Visuales (VCL) es el conjunto de herramientas de Embarcadero utilizado en C++Builder y Delphi . Encapsula los controles nativos de Windows, proporcionando clases orientadas a objetos y diseño visual, aunque también permite el acceso a los identificadores subyacentes y otros detalles de la API de Windows si es necesario. Originalmente se implementó como sucesora de OWL , omitiendo el estilo de creación de interfaz de usuario de OWL/MFC, que a mediados de los noventa era un modelo de diseño obsoleto. [ 3 ]
- Windows Forms (WinForms) es el conjunto de clases .NET de Microsoft que manejan controles de interfaz gráfica de usuario (GUI). En la implementación multiplataforma Mono , es un conjunto de herramientas independiente, implementado completamente en código administrado (sin encapsular la API de Windows, que no existe en otras plataformas). [ 4 ] El diseño de WinForms imita de cerca el de VCL .
- Windows Presentation Foundation (WPF) es el subsistema gráfico de .NET Framework 3.0 . Las interfaces de usuario se pueden crear en WPF utilizando cualquiera de los lenguajes CLR (por ejemplo, C# ) o con el lenguaje basado en XML XAML . Microsoft Expression Blend es un generador visual de interfaces gráficas de usuario para WPF.
- La biblioteca de interfaz de usuario de Windows (WinUI) es el subsistema gráfico de las aplicaciones universales . Las interfaces de usuario se pueden crear en WinUI utilizando C++ o cualquiera de los lenguajes .NET (por ejemplo, C# ) o con el lenguaje basado en XML XAML . Microsoft Expression Blend es un creador visual de interfaces gráficas de usuario que admite WinUI.
En Unix , bajo el sistema X Window
Cabe destacar que el sistema X Window se diseñó originalmente principalmente para sistemas operativos tipo Unix, pero ahora también funciona en Microsoft Windows utilizando, por ejemplo, Cygwin , por lo que algunos o todos estos conjuntos de herramientas también se pueden usar en Windows.
- Motivo utilizado en el Entorno de Escritorio Común .
- LessTif , una implementación de código abierto ( LGPL ) de Motif.
- MoOLIT , un puente entre la estética de OPEN LOOK y Motif.
- OLIT , un conjunto de herramientas intrínsecas de OPEN LOOK basado en Xt.
- Xaw , el conjunto de widgets del Proyecto Athena para el Sistema X Window .
- XView , un kit de herramientas OPEN LOOK compatible con SunView.
Multiplataforma
- Elementary , código abierto ( LGPL ), forma parte de las Bibliotecas de la Fundación Enlightenment .
- GTK , de código abierto ( LGPL ), diseñado principalmente para el sistema X Window, se ha adaptado y emulado en otras plataformas; se utiliza en los entornos de escritorio GNOME , Rox , LXDE y Xfce . La versión para Windows admite widgets nativos.
- IUP , de código abierto ( MIT ), es un conjunto de herramientas GUI minimalista en ANSI C para Windows, UNIX y Linux.
- Tk , de código abierto (estilo BSD), es un conjunto de widgets al que se accede desde Tcl y otros lenguajes de script de alto nivel (con interfaz en Python como Tkinter ).
- XForms , la biblioteca de formularios para X
- XVT , Kit de herramientas virtuales extensible
- CEGUI , de código abierto ( licencia MIT ), es un conjunto de herramientas de widgets multiplataforma diseñado para el desarrollo de videojuegos , pero también utilizable para el desarrollo de aplicaciones y herramientas. Admite múltiples renderizadores y bibliotecas opcionales.
- FLTK , código abierto ( LGPL ), kit de herramientas multiplataforma diseñado para ser pequeño y rápido.
- Kit de herramientas FOX , código abierto ( LGPL ), kit de herramientas multiplataforma.
- GLUI , un conjunto de herramientas muy pequeño escrito con la biblioteca GLUT .
- gtkmm , interfaz C++ para GTK
- Juce proporciona una interfaz gráfica de usuario (GUI) y un conjunto de widgets con la misma apariencia en Microsoft Windows, sistemas X Windows, macOS y Android. La renderización puede basarse en OpenGL.
- Qt , de código abierto ( GPL , LGPL ) con licencia propietaria/comercial opcional, está disponible para Unix y Linux (con X11 o Wayland), Windows (Desktop, CE y Phone 8), macOS, iOS, Android, BlackBerry 10 y Linux embebido; se utiliza en los entornos de escritorio KDE , Trinity , LXQt y Lumina , y también en el shell Unity de Ubuntu .
- Rogue Wave Views (anteriormente ILOG Views) proporciona una interfaz gráfica de usuario y una biblioteca gráfica para Windows y las principales plataformas X11.
- TnFOX , de código abierto ( LGPL ), es un conjunto de herramientas de portabilidad.
- U++ es un marco de aplicaciones de código abierto que incluye un IDE ( licencia BSD ), creado principalmente para sistemas operativos Win32 y tipo Unix ( X11 ), pero que ahora funciona con casi cualquier sistema operativo .
- wxWidgets (anteriormente wxWindows), de código abierto ( LGPL flexible ), ofrece conjuntos de herramientas abstractas para varias plataformas en C++, Python , Perl , Ruby y Haskell .
- Zinc Application Framework , un conjunto de herramientas de widgets multiplataforma.
Basado en Python
- Tkinter , de código abierto ( BSD ), es una interfaz de Python para el conjunto de herramientas GUI Tk . Tkinter viene incluido en las instalaciones estándar de Python para GNU/Linux, Microsoft Windows y macOS.
- Kivy , de código abierto ( MIT ), es una biblioteca moderna para el desarrollo rápido de aplicaciones que utilizan interfaces de usuario innovadoras, como aplicaciones multitáctiles. Está completamente escrita en Python con optimizaciones adicionales en Cython .
- PySide , de código abierto ( LGPL ), es una interfaz para Python del kit de herramientas GUI multiplataforma Qt , desarrollado por The Qt Company como parte del proyecto Qt para Python.
- PyQt , de código abierto ( GPL y comercial), es otra interfaz para Python del kit de herramientas GUI multiplataforma Qt, desarrollado por Riverbank Computing.
- PyGTK , de código abierto ( LGPL ), es un conjunto de envoltorios de Python para la biblioteca de interfaz gráfica de usuario GTK.
- wxPython , de código abierto ( licencia wxWindows ), es una capa de abstracción para la API de interfaz gráfica de usuario multiplataforma wxWidgets para el lenguaje de programación Python.
Basado en Flash
- Adobe Flash permite crear widgets que se ejecutan en la mayoría de los navegadores web y en varios teléfonos móviles.
- Adobe Flex proporciona widgets de alto nivel para la creación de interfaces de usuario web. Los widgets de Flash se pueden utilizar en Flex.
- Los widgets de Flash y Flex se ejecutarán sin necesidad de un navegador web en el entorno de ejecución de Adobe AIR .
- Adobe AIR permite la creación de aplicaciones web enriquecidas basadas en Flash.
Basado en Go
- Fyne , de código abierto ( BSD ), se inspira en los principios de Material Design para crear aplicaciones que tengan una apariencia y un comportamiento consistentes en Windows, macOS, Linux, BSD, Android e iOS.
Basado en XML
Basado en JavaScript
General
- Interfaz de usuario jQuery
- MooTools
- Qooxdoo podría entenderse como Qt para la web.
- Script.aculo.us
Framework de pila completa
Basado en recursos
- Kit de herramientas web de Google (GWT)
- FBML ( Facebook Markup Language)
Ya no está desarrollado
- YUI (Biblioteca de interfaz de usuario de Yahoo!)
Basado en SVG
- Raphaël es un conjunto de herramientas JavaScript para interfaces y animaciones SVG.
Basado en C#
- Formularios de Windows . Existe una implementación original de Microsoft que es una capa de abstracción sobre la API de Windows y se ejecuta en Windows, y una implementación alternativa de Mono que es multiplataforma.
Basado en Java
- El Abstract Window Toolkit (AWT) es el conjunto de herramientas de widgets original de Sun Microsystems para aplicaciones Java. Normalmente utiliza otro conjunto de herramientas en cada plataforma en la que se ejecuta.
- Swing es un conjunto de herramientas de widgets más completo, compatible desde J2SE 1.2 como reemplazo de los widgets AWT. Swing es un conjunto de herramientas ligero, lo que significa que no depende de widgets nativos.
- Apache Pivot es una plataforma de código abierto para crear aplicaciones web avanzadas en Java o cualquier lenguaje compatible con la JVM, y se basa en el kit de herramientas de widgets WTK.
- JavaFX y FXML .
- El Standard Widget Toolkit (SWT) es un conjunto de herramientas de widgets nativo para Java que se desarrolló como parte del proyecto Eclipse . SWT utiliza un conjunto de herramientas estándar para la plataforma en la que se ejecuta (como la API de Windows, macOS Cocoa o GTK).
- Codename One fue diseñado originalmente como un kit de herramientas móviles multiplataforma, pero posteriormente se amplió para admitir aplicaciones de escritorio tanto a través de JavaSE como mediante una canalización de JavaScript a través de navegadores.
- java-gnome proporciona enlaces al kit de herramientas GTK y a otras bibliotecas del entorno de escritorio GNOME.
- Qt Jambi , el enlace oficial de Java para Qt de Trolltech. El soporte y desarrollo comercial se ha detenido [ 5 ].
- ZK : un framework web Java para crear aplicaciones móviles y con Ajax avanzadas.
Basado en Object Pascal
- FireMonkey o FMX es una biblioteca de widgets y gráficos multiplataforma que se distribuye con Delphi y C++Builder desde la versión XE2 en 2011. Cuenta con enlaces para C++ a través de C++Builder y es compatible con Windows, macOS, iOS, Android y, más recientemente, Linux. FireMonkey admite widgets nativos de la plataforma, como un control de edición nativo, y widgets personalizados con un estilo que imita el de los controles nativos del sistema operativo de destino. Sus gráficos están acelerados por GPU y admite estilos y la combinación de sus propios controles de implementación con controles nativos del sistema, lo que permite a las aplicaciones usar el comportamiento nativo donde sea necesario (por ejemplo, para la entrada de texto en el IME ).
- IP Pascal utiliza una biblioteca gráfica basada en construcciones estándar del lenguaje. Además, se distingue por ser un conjunto de herramientas procedimentales multiplataforma (sin devoluciones de llamada ni otras técnicas especiales) y totalmente compatible con los paradigmas estándar de entrada y salida serie. Se pueden ejecutar programas estándar con salida serie y ampliarlos con construcciones gráficas.
- Lazarus LCL (para Pascal , Object Pascal y Delphi a través del compilador Free Pascal ), una biblioteca de clases que encapsula GTK + 1.2–2.x y la API de Windows (la compatibilidad con Carbon, Windows CE y Qt4 está en desarrollo).
- fpGUI se creó con el compilador Free Pascal . No depende de bibliotecas de terceros de gran tamaño y actualmente funciona en Linux, Windows, Windows CE y Mac (a través de X11). Se está desarrollando una versión para Carbon (macOS).
- CLX (Component Library for Cross-platform) se utilizaba con Delphi , C++ Builder y Kylix de Borland (ahora Embarcadero ) para desarrollar aplicaciones multiplataforma entre Windows y Linux. Estaba basado en Qt , con una interfaz de programación similar a la del kit de herramientas VCL . Ya no recibe mantenimiento ni distribución, y desde 2011 ha sido reemplazado por FireMonkey , un kit de herramientas más reciente que también admite más plataformas.
Basado en Objective-C
Basado en Dart
- Flutter (software) es un framework de código abierto y multiplataforma creado por Google.
Basado en Swift
- Cocoa Touch es un framework creado por Apple para desarrollar aplicaciones para iOS , iPadOS y tvOS .
Basado en Ruby
- Shoes (kit de herramientas GUI) es un marco de trabajo multiplataforma para el desarrollo de interfaces gráficas de usuario.
Aún no categorizado
Comparación de conjuntos de herramientas de widgets
Véase también
Referencias
- ↑ Microsoft: Usuario en modo kernel de MS Windows NT
- ↑ Techworld: Microsoft trasladará los gráficos fuera del núcleo del sistema operativo.
- ↑ Pacheco, Teixera; Xavier, Steve (2001). Guía del desarrollador de Borland Delphi 6. Sams Publishing. pág. 382. ISBN 0-672-32115-7.
- ↑ Esta versión proporciona la API principal de .NET Framework 2.0 , pero su implementación de esta API aún está incompleta.
- ↑ Qt Software dejará de desarrollar Qt Jambi tras el lanzamiento de la versión 4.5. Archivado el 26 de julio de 2009 en Wayback Machine.
- ↑ https://github.com/cegui/cegui/releases/tag/v0-8-7
- ↑ "PyCEGUI - Wiki de CEGUI - Sistema GUI de Crazy Eddie (Código abierto)" .
- ↑ "Ampliando tu interfaz Lua - Wiki de CEGUI - Sistema GUI de Crazy Eddie (Código abierto)" .
- ↑ "CEED - CEGUI Wiki - Sistema GUI de Crazy Eddie (Código abierto)" .
- ↑ https://gitlab.gnome.org/GNOME/gtk/-/tags/4.6.0
- ↑ Migración a ventanas del lado del cliente. Archivado el 27 de abril de 2011 en Wayback Machine : "GDK busca la variable de entorno GDK_NATIVE_WINDOWS y hace que todas las ventanas sean nativas si está configurada. También intenta ser más compatible con la forma en que funcionaban las versiones anteriores en otros aspectos."
- ↑ Horror en la programación: la interfaz de usuario no nativa apesta : "[...] tiene una interfaz de usuario multiplataforma basada en GTK, que produce resultados predeciblemente insulsos y del mínimo común denominador:"
- ↑ "IUP - Navegar /3.28 en SourceForge.net" .
- ↑ "IUP - Interfaz de usuario portátil" .
- ↑ Comparación de IUP con otros kits de herramientas de interfaz : "[...] no tiene soporte para caracteres Unicode."
- ↑ "Lanzamiento de Qt 6.5" . www.qt.io. The Qt Company . Consultado el 20 de diciembre de 2023 .
- ↑ Nyström, Sebastian (14 de enero de 2009). "Nokia licenciará Qt bajo LGPL" . Archivado del original el 11 de noviembre de 2013.
- ↑ Comparación de WxWidgets con otros kits de herramientas : "Qt no tiene puertos nativos reales como wxWidgets. Qt no usa los widgets proporcionados por el sistema, sino que los emula con temas. Con esto queremos decir que, aunque Qt los dibuja de forma bastante realista, dibuja sus propios widgets en cada plataforma."
- ↑ "Biblioteca de clases modulares Qt" . Digia. Archivado del original el 1 de noviembre de 2013.
Qt utiliza las API gráficas nativas de cada plataforma compatible, aprovechando al máximo los recursos del sistema y garantizando que las aplicaciones tengan una apariencia nativa.
- ↑ "La API de estilo de Qt 4" . The Qt Company .
Los widgets integrados de Qt utilizan [QStyle] para realizar casi todo su dibujo, lo que garantiza que se vean exactamente igual que los widgets nativos equivalentes.
- ↑ "Se lanzaron wxWidgets 3.2.10 y 3.3.2" . 3 de marzo de 2026. Consultado el 5 de abril de 2026 .
- ↑ Alan Coopersmith (30 de abril de 2015). " [ ANUNCIO ] libXaw 1.0.13" . xorg-announce@lists.x.org (Lista de correo) . Consultado el 1 de julio de 2020 .
- Kits de herramientas de widgets
- Listas de software