Este artículo proporciona una lista de kits de herramientas de widgets (también conocidos como marcos GUI ), utilizados para construir la interfaz gráfica de usuario (GUI) de los programas, organizados por sus relaciones 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 que utilizaba su predecesor BeOS . Se espera que Haiku Inc. abandone la compatibilidad binaria y de código fuente con BeOS en algún momento futuro, lo que dará como resultado una API Haiku.
Como una capa separada sobre el sistema operativo
- El sistema X Window contiene bloques de construcción primitivos, llamados Xt o "intrínsecos", pero en su mayoría solo los utilizan los conjuntos de herramientas más antiguos, como OLIT , Motif y Xaw . La mayoría de los conjuntos de herramientas actuales, como GTK o Qt , los pasan por alto y utilizan Xlib o XCB directamente.
- El sistema operativo Amiga Intuition estaba anteriormente presente en la ROM Kickstart de Amiga y se integraba con una biblioteca de widgets de nivel medio-alto que invocaba la interfaz gráfica de usuario nativa de Workbench Amiga . Desde el sistema operativo Amiga 2.0, Intuition.library pasó a estar basada en disco y orientada a objetos. Asimismo, Workbench.library e Icon.library pasaron a estar basadas en disco y podían reemplazarse con soluciones similares de terceros.
- Desde 2005, Microsoft ha eliminado el sistema gráfico del kernel de Windows. [2]
Kits de herramientas de widgets de alto nivel
Depende del sistema operativo
- BOOPSI (Basic Object Oriented Programming System for 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 condujo a una evolución en la que los desarrolladores externos implementaron sus propios sistemas personales 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 (GUI toolkit) es un clon de código abierto de MUI y el kit de herramientas oficial para AROS .
- Microsoft Foundation Classes (MFC), un contenedor de C++ alrededor de 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 objetos de Windows (OWL), la alternativa de Borland a MFC.
- La biblioteca de componentes visuales (VCL) es el conjunto de herramientas de Embarcadero que se utiliza en C++Builder y Delphi . Envuelve los controles nativos de Windows, proporcionando clases orientadas a objetos y diseño visual, aunque también permite el acceso a los controladores subyacentes y otros detalles de WinAPI si es necesario. Originalmente se implementó como sucesor de OWL , omitiendo el estilo OWL/MFC de creación de IU, que a mediados de los noventa era un modelo de diseño anticuado. [3]
- Windows Forms (WinForms) es el conjunto de clases .NET de Microsoft que manejan controles GUI. En la implementación Mono multiplataforma , es un conjunto de herramientas independiente, implementado completamente en código administrado (no encapsulando 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 de GUI visual 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 generador de GUI visual compatible con WinUI.
EnUnix, bajo el sistema X Window
Tenga en cuenta que el sistema X Window fue originalmente diseñado principalmente para sistemas operativos tipo Unix, pero ahora también se ejecuta en Microsoft Windows usando, por ejemplo, Cygwin , por lo que algunos o todos estos kits de herramientas también se pueden usar en Windows.
Multiplataforma
Residencia endo(incluidofijacionesa otros idiomas)
- Elemental , de código abierto ( LGPL ), parte de las Bibliotecas de la Fundación Enlightenment .
- GTK , código abierto ( LGPL ), principalmente para el sistema X Window, adaptado y emulado en otras plataformas; utilizado en los entornos de escritorio GNOME , Rox , LXDE y Xfce . El puerto de Windows admite widgets nativos.
- IUP , código abierto ( MIT ), un kit de herramientas GUI minimalista en ANSI C para Windows, UNIX y Linux.
- Tk , código abierto (estilo BSD), un conjunto de widgets al que se accede desde Tcl y otros lenguajes de script de alto nivel (interconectados en Python como Tkinter ).
- XForms , la biblioteca de formularios para X
- XVT , kit de herramientas virtuales extensibles
Residencia enC++(incluidofijacionesa otros idiomas)
- CEGUI , un conjunto de herramientas de widgets multiplataforma de código abierto ( licencia MIT ) diseñado para el desarrollo de juegos , pero que también se puede utilizar para el desarrollo de aplicaciones y herramientas. Admite varios renderizadores y bibliotecas opcionales.
- FLTK , kit de herramientas multiplataforma de código abierto ( LGPL ), 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 ofrece una interfaz gráfica de usuario y un conjunto de widgets con la misma apariencia en Microsoft Windows, X Windows Systems, macOS y Android. La representación puede basarse en OpenGL.
- Qt , propietario y de código abierto ( GPL , LGPL ), disponible en Unix y Linux (con X11 o Wayland), Windows (Desktop, CE y Phone 8), macOS, iOS, Android, BlackBerry 10 y Linux integrado; utilizado en los entornos de escritorio KDE , Trinity , LXQt y Lumina , también se utiliza en el shell Unity de Ubuntu .
- Rogue Wave Views (anteriormente ILOG Views) proporciona una GUI y una biblioteca gráfica para Windows y las principales plataformas X11.
- TnFOX , código abierto ( LGPL ), un kit de herramientas de portabilidad.
- U++ es un marco de aplicación de código abierto incluido en un IDE ( licencia BSD ), creado principalmente para Win32 y sistemas operativos tipo Unix ( X11 ), pero que ahora funciona con casi cualquier sistema operativo .
- wxWidgets (anteriormente wxWindows), kits de herramientas abstractos de código abierto ( LGPL relajado ) en varias plataformas para C++, Python , Perl , Ruby y Haskell .
- Zinc Application Framework , kit de herramientas de widgets multiplataforma.
- Tkinter , de código abierto ( BSD ), es un enlace de Python al kit de herramientas GUI de Tk . Tkinter se incluye con 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. Escrita íntegramente en Python con mejoras de velocidad adicionales en Cython .
- PySide , de código abierto ( LGPL ), es un enlace de 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 otro enlace de Python al 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 un contenedor para la API GUI multiplataforma wxWidgets para el lenguaje de programación Python.
- Pyjs , de código abierto ( licencia Apache 2.0 ), es un rico marco de aplicaciones web para desarrollar aplicaciones web y de escritorio del lado del cliente; es un puerto de Google Web Toolkit (GWT) desde Java.
- Adobe Flash permite crear widgets que funcionan en la mayoría de los navegadores web y en varios teléfonos móviles.
- Adobe Flex ofrece widgets de alto nivel para crear interfaces de usuario web. Los widgets Flash se pueden utilizar en Flex.
- Los widgets Flash y Flex se ejecutarán sin un navegador web en el entorno de ejecución de Adobe AIR .
Residencia enIr
- Fyne , de código abierto ( BSD ), se inspira en los principios de Material Design para crear aplicaciones que se vean y se comporten de manera consistente en Windows, macOS, Linux, BSD, Android e iOS.
Residencia enXML
General
RIA
Marco de trabajo de pila completa
Basado en recursos
Ya no se desarrolla
- YUI (Biblioteca de interfaz de usuario de Yahoo!)
Residencia enSVG
- Raphaël es un kit de herramientas de JavaScript para interfaces y animaciones SVG
Residencia enDO#
- Gtk# , envoltorios de C# alrededor de las bibliotecas GTK y GNOME subyacentes , escritos en C y disponibles en Linux, MacOS y Windows.
- QtSharp, envoltorios de C# alrededor del kit de herramientas de widgets Qt , que a su vez está basado en el lenguaje C++ .
- Windows Forms . Existe una implementación original de Microsoft que envuelve la API de Windows y se ejecuta en Windows, y una implementación alternativa de Mono que es multiplataforma.
Residencia enJava
- Abstract Window Toolkit (AWT) es el kit de herramientas de widgets original de Sun Microsystems para aplicaciones Java. Normalmente utiliza un kit de herramientas diferente 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 liviano, lo que significa que no depende de widgets nativos.
- Apache Pivot es una plataforma de código abierto para crear aplicaciones web enriquecidas en Java o cualquier lenguaje compatible con JVM, y se basa en el kit de herramientas de widgets WTK.
- JavaFX y FXML .
- El kit de herramientas de widgets estándar (SWT) es un kit de herramientas de widgets nativo para Java que se desarrolló como parte del proyecto Eclipse . SWT utiliza un kit de herramientas estándar para la plataforma en ejecución (como la API de Windows, macOS Cocoa o GTK) subyacente.
- Codename One fue diseñado originalmente como un kit de herramientas móviles multiplataforma y luego se expandió 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 otras bibliotecas del entorno de escritorio GNOME
- Qt Jambi , el enlace oficial de Java a Qt de Trolltech. El soporte comercial y el desarrollo se han detenido [5]
- FireMonkey o FMX es una biblioteca de gráficos y widgets multiplataforma distribuida con Delphi y C++Builder desde la versión XE2 en 2011. Tiene 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 que tienen un estilo que los hace parecer nativos en un sistema operativo de destino. Sus gráficos están acelerados por GPU y admite el estilo y la combinación de sus propios controles de implementación con controles nativos del sistema, lo que permite que las aplicaciones utilicen un comportamiento nativo donde sea importante (por ejemplo, para la entrada de texto IME ).
- IP Pascal utiliza una biblioteca de gráficos construida sobre construcciones de lenguaje estándar. También es inusual por ser un conjunto de herramientas procedimentales que es multiplataforma (sin devoluciones de llamadas ni otros trucos) y es completamente compatible con paradigmas de entrada y salida seriales estándar. Los programas completamente estándar con salida serial se pueden ejecutar y ampliar con construcciones gráficas.
- Lazarus LCL (para Pascal , Object Pascal y Delphi a través del compilador Free Pascal ), una biblioteca de clases que envuelve GTK + 1.2–2.x y la API de Windows (el soporte para Carbon, Windows CE y Qt4 se encuentra en desarrollo).
- fpGUI se creó con el compilador Free Pascal . No depende de ninguna biblioteca de terceros y actualmente funciona en Linux, Windows, Windows CE y Mac (a través de X11). Se está preparando un puerto para Carbon (macOS).
- CLX (Component Library for Cross-platform) se utilizó con Delphi , C++ Builder y Kylix de Borland (ahora Embarcadero ) para producir aplicaciones multiplataforma entre Windows y Linux. Se basaba en Qt , encapsulado de tal manera que su interfaz de programación era similar a la del kit de herramientas VCL . Ya no se mantiene ni se distribuye, y ha sido reemplazado por FireMonkey , un kit de herramientas más nuevo que también admite más plataformas, desde 2011.
- Cocoa Touch es un framework creado por Apple para crear aplicaciones para iOS , iPadOS y tvOS .
Residencia enRubí
- Shoes (GUI toolkit) es un marco 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 moverá los gráficos fuera del núcleo del sistema operativo
- ^ Teixera, Pacheco, Steve, Xavier (2001). Guía del desarrollador de Borland Delphi 6. Sams Publishing. pág. 382. ISBN 0-672-32115-7.
{{cite book}}
: CS1 maint: varios nombres: lista de autores ( enlace ) - ^ 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 descontinuará Qt Jambi después del 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 - CEGUI Wiki - Sistema GUI de Crazy Eddie (código abierto)".
- ^ "Ampliando su interfaz Lua - CEGUI Wiki - 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".
- ^ Coding Horror: La interfaz de usuario no nativa apesta: "[…] tiene una interfaz de usuario multiplataforma basada en GTK, que produce resultados predeciblemente insulsos y de mínimo común denominador:"
- ^ "IUP - Explorar /3.28 en SourceForge.net".
- ^ "IUP - Interfaz de usuario portátil".
- ^ Comparando IUP con otros kits de herramientas de interfaz: "[…] no tiene soporte para caracteres Unicode".
- ^ "Biblioteca Nana C++: una biblioteca GUI de C++ moderna".
- ^ "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 desde el original el 11 de noviembre de 2013.
- ^ Comparación de WxWidgets con otros conjuntos de herramientas: "Qt no tiene puertos nativos verdaderos como wxWidgets. Qt no utiliza widgets provistos por el sistema, sino que los emula con temas. Lo que queremos decir con esto es que, si bien Qt los dibuja de manera bastante realista, Qt dibuja sus propios widgets en cada plataforma".
- ^ "Biblioteca de clases modulares de Qt". Digia. Archivado desde el original el 1 de noviembre de 2013.
Qt utiliza las API de gráficos nativas de cada plataforma que soporta, aprovechando al máximo los recursos del sistema y garantizando que las aplicaciones tengan un aspecto y un funcionamiento nativos.
- ^ "La API de estilo de Qt 4". The Qt Company .
Los widgets integrados de Qt utilizan [QStyle] para realizar casi todo el dibujo, lo que garantiza que se vean exactamente como los widgets nativos equivalentes.
- ^ "wxWidgets: 3.2.6 Released". 9 de septiembre de 2024. Consultado el 13 de septiembre de 2024 .
- ^ Alan Coopersmith (30 de abril de 2015). «[ANUNCIO] libXaw 1.0.13». [email protected] (Lista de correo) . Consultado el 1 de julio de 2020 .