WxWidgets

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Widget toolkit

wxWidgets (anteriormente wxWindows) es un conjunto de herramientas de widgets y una biblioteca de herramientas para crear interfaces gráficas de usuario (GUI) para aplicaciones multiplataforma. wxWidgets permite que el código GUI de un programa se compile y ejecute en varias plataformas informáticas con cambios de código mínimos o nulos. Una amplia variedad de compiladores y otras herramientas para usar con wxWidgets facilita el desarrollo de aplicaciones sofisticadas. wxWidgets es compatible con una amplia gama de sistemas operativos populares y bibliotecas gráficas, tanto patentadas como gratuitas, y se implementa ampliamente en organizaciones destacadas (consulte el texto).

El proyecto se inició con el nombre de wxWindows en 1992 por Julian Smart en la Universidad de Edimburgo. El proyecto pasó a llamarse wxWidgets en 2004 en respuesta a un reclamo de marca registrada de Microsoft UK.

Es software gratuito y de código abierto, distribuido bajo los términos de la licencia wxWidgets, que satisface a aquellos que desean producir para GPL y software propietario.

Portabilidad e implementación

wxWidgets cubre sistemas como Microsoft Windows, Mac OS (Carbon y Cocoa), iOS (Cocoa Touch), Linux/Unix (X11, Motif y GTK), OpenVMS, OS/2 y AmigaOS. Se está desarrollando una versión para sistemas integrados.

wxWidgets se utiliza en muchos sectores de la industria, sobre todo en Xerox, Advanced Micro Devices (AMD), Lockheed Martin, la NASA y el Centro de Análisis Naval. También se utiliza en el sector público y en la educación, por ejemplo, en la Facultad de Medicina de Dartmouth, el Instituto Nacional de Investigación del Genoma Humano, el Centro Nacional de Información Biotecnológica y muchos otros. wxWidgets se usa en muchos proyectos de código abierto y por desarrolladores individuales.

Historia

wxWidgets (inicialmente wxWindows; "w" es para Windows y "x" es para X Window System) fue iniciado en 1992 por Julian Smart en la Universidad de Edimburgo. Obtuvo una licenciatura con honores en ciencias computacionales de la Universidad de St Andrews en 1986 y sigue siendo un desarrollador principal.

El 20 de febrero de 2004, los desarrolladores de wxWindows anunciaron que el proyecto cambiaría su nombre a wxWidgets, como resultado de que Microsoft solicitó a Julian Smart que respetara la marca registrada de Microsoft en el Reino Unido de el término Windows.

Las principales versiones de lanzamiento fueron la 2.4 el 6 de enero de 2003, la 2.6 el 21 de abril de 2005 y la 2.8.0 el 14 de diciembre de 2006. La versión 3.0 se lanzó el 11 de noviembre de 2013.

wxWidgets ha participado en Google Summer of Code desde 2006.

La siguiente tabla contiene el historial de versiones de wxWidgets, que muestra todas sus versiones principales.

Número de versión Fecha Cambios notables
Proyecto iniciado por Julian Smart 1992
wxWindows 1
Alfa 1 5 de abril de 1997
Beta 1 24 de diciembre de 1998
wxWidgets 2
2.0.1 1o de marzo de 1999
2.2.0 9 de julio de 2000
2.4.0 6 de enero de 2003
2.6.0 21 de abril de 2005
2.8.0 14 de diciembre de 2006
  • wxAUI biblioteca.
  • Genérico wxRichTextCtrl.
  • wxComboCtrl con comboboxes gráficos personalizados.
  • Más funcionalidad incluyendo wxAnimationCtrl, wxSimpleHtmlListBox, wxHyperlinkCtrl, wxColourPickerCtrl, wxDirPickerCtrl, wxFilePickerCtrl, wxFontPickerCtrl, wxCollapsible Pane, wxSearchCtrl, wxAboutBox, wxTreebook, tar streams.
2.8.11 23 de abril de 2010
2.8.12 28 de marzo de 2011
2.9.0 8 de septiembre de 2009
2.9.1 19 de julio de 2010
2.9.2 5 de julio de 2011
2.9.3 14 de diciembre de 2011
2.9.4 9 de julio de 2012
2.9.5 16 de julio de 2013
wxWidgets 3
3.0.0 11 de noviembre de 2013
  • GTK+ 3 puerto
  • Soporte de Unicode transparente
  • Unification of debug-release builds
  • Puerto wxOSX con base en cacao que funciona en modo 64-bit
  • Controles persistentes
  • Soporte para diálogos ventana-modal y aplicación-modal
  • wxRibbon – implantación de cinta
  • wxPropertyGrid
3.0.1 15 de junio de 2014
3.0.2 6 de octubre de 2014
3.0.3 2 de mayo de 2017
3.0.4 8 de marzo de 2018
3.0.5 27 de abril de 2020
3.1.0 29 de febrero de 2016
  • Mejor soporte para pantallas DPI altas, especialmente en Windows.
  • Soporte para los últimos compiladores incluyendo MSVS 2015, g++ 5.3 y clang 3.8, incluyendo en modo C++11.
  • Soporte OpenGL renovado mejor adaptado a OpenGL moderno (3.2+).
  • Nuevas clases de wxActividadIndicador y wxNativeWindow.
  • Mejoras en wxNotificationMessage.
  • Varios métodos nuevos como wxTextIntry::ForceUpper(), wxProcess::Activate(), wxDateTime::GetWeekBasedYear(), wxListBox::GetTopItem(), wxStandardPaths:::GetUserDir(), wxUIActionSimulator:::Select().
  • Versión actualizada de las bibliotecas de terceros agrupadas y soporte para GStreamer 1.0 bajo Unix.
  • Nuevo puerto experimental wxQt.
  • Corrección de errores.
3.1.1 19 de febrero de 2018
  • wxWidgets 3.1.1 es la segunda versión en la rama de desarrollo 3.1. Esta versión es un "desarrollo" que hace (muy pocos) cambios de API incompatibles en comparación con 3.0 y no garantiza la estabilidad de ABI, a diferencia de la serie 3.0.x.
3.1.2 10 de diciembre de 2018
  • Soporte inicial para macOS 10.14 y su modo oscuro.
  • Soporte para tamaños de fuentes no enteros y pesos arbitrarios de fuentes.
  • Nuevas clases de wxLZMA{Input,Output}Stream.
  • Agregar wxDataViewToggleRenderer::ShowAsRadio(), wxDisplay::GetPPI(), wxGrid:::SetCornerLabelValue(), wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(), wxToolbook:EnablePage
3.1.3 28 octubre 2019
  • Apoyo a los cambios DPI por monitor y DPI dinámicos bajo MSW.
  • Más generalmente, muchas correcciones para varios controles aparecen en DPI alto.
  • Long requested support for freeze rows and/or columns in wxGrid.
  • Nuevos controladores XRC para wxDataViewCtrl, wxInfoBar.
  • Ahora es posible utilizar gradientes al crear wxGraphicsPen.
  • Compilador ampliado (MSVS 2019) y soporte de plataformas (macOS 10.14+).
  • Mejoras significativas en el puerto (totalmente experimental) wxQt.
  • Importantes correcciones de fallos para el manejo de foco en el puerto wxOSX.
3.1.4 22 de julio de 2020
  • puerto wxOSX ahora soporta el último macOS 11 en hardware ARM.
  • wxMSW viene con una nueva implementación wxWebView basada en Edge.
  • Mejor, aunque todavía no es perfecto, soporte DPI por monitor en wxMSW.
  • wxGrid ha sido mejorado significativamente y ahora es mucho más fácil de usar.
  • Mejoras de apariencia AUI para temas GTK no predeterminados y modo oscuro macOS.
  • wxWidgets puede ser construido con el compilador C++20.
  • Mejoras en el sistema de construcción de CMake.
  • Permitir opcionalmente prohibir las conversiones implícitas peligrosas wxString.
3.1.5 14 de abril de 2021
  • Nueva wxWebRequest y clases relacionadas proporcionan una manera sencilla de utilizar HTTPS y HTTP/2 de aplicaciones wxWidgets usando bibliotecas nativas o libcurl.
  • Soporte EGL en wxGLCanvas y Wayland en wxMediaCtrl bajo Linux.
  • Muchas apariencias y otras correcciones para macOS 11.
  • Más mejoras en wxGrid UI, API y rendimiento.
  • wxImage improvements: add alpha support in Paste() and clipboard support.
  • API additions: wxPersistentComboBox, wxFileName::ResolveLink(), wxFileHistoria::SetMenuPathStyle(), wxString::utf8_string(), wxEVT_FULLSCREEN.
  • Mejoras: wxConfig ahora soporta los enteros de 64 bits, wxLog utiliza resolución de milisegundos en timetamps, los archivos XRC se pueden cargar desde URLs.
  • Soporte de Borland C++.
3.1.6 4 de abril de 2022
  • Muchas mejoras de HiDPI.
  • Nueva clase wxBitmapBundle que permite proporcionar trabajo de arte tanto para el DPI normal como alto de una manera sencilla.
  • Nueva clase wxUILocale que reemplaza al viejo (pero todavía disponible) wxLocale, pero no sufre de sus múltiples problemas y proporciona más funcionalidad.
  • Soporte para usar la comprobación de hechizos nativa en wxTextCtrl.
  • Soporte para deshacer/redo en wxTextCtrl en wxOSX.
  • Mejor implementación de arrastrar y soltar en wxOSX.
  • Fija para fallos importantes en wxDataViewCtrl bajo todas las plataformas.
  • Muchas mejoras y correcciones de fallos para el apoyo Wayland en wxGTK.
  • Soporte para las últimas versiones de OS (Windows 11, macOS 12) y compiladores (MSVS 2022, gcc 12, clang 13).
  • Project bug tracker has been moved to GitHub Issues.
3.1.7 6 de junio de 2022
  • CMake construye mejoras del sistema (mejor soporte de cabeceras precompiladas).
  • Nuevo wxFileDialog customization API trabajando con IFileDialog en wxMSW.
  • Muchas traducciones actualizadas y nuevas wxTRANSLATE_IN_CONTEXT().
  • Arreglos para malas interacciones con nuevas funciones de macOS 12 en wxOSX.
  • Varios atributos anteriormente desaparecidos añadidos a múltiples manipuladores XRC.
  • Reordenamiento de fila arrastrando y potenciando la interfaz de usuario en wxGrid.
  • Capacidad para suprimir mensajes de advertencia seleccionados (o todos) GTK en wxGTK.
3.2.0 7 de julio de 2022
  • Soporte de plataforma Drop Win9x.
  • Suelte Microsoft Visual C+ 6.0 de soporte.
  • Soporte de modo oscuro nativo de MacOS.
  • Soporte para versiones ARM de MacOS.
  • HiDPI y per-monitor DPI API.
  • Apoyo a Wayland.
  • wxWebRequest ahora soporta HTTPS y HTTP/2.
Versiones futuras

Licencia

wxWidgets se distribuye bajo una licencia de wxWindows hecha a medida, similar a la Licencia pública general reducida de GNU (LGPL), con la excepción de que los trabajos derivados en formato binario pueden distribuirse al usuario's propios términos. Esta licencia es una licencia de software libre aprobada por la FSF, lo que hace que wxWidgets sea un software gratuito. Ha sido aprobado por la Open Source Initiative (OSI).

Soporte oficial

Plataformas compatibles

wxWidgets es compatible con las siguientes plataformas:

  • Windows – wxMSW (32/64-bits Windows XP hasta Windows 11)
  • Linux/Unix – wxGTK, wxX11, wxMotif
  • Mac OS – wxMac (Mac OS X 10.3 usando Carbon, Mac OS X 10.5 usando Cocoa), wxOSX/Cocoa (32/64-bits Mac OS X 10.7 o posterior)
  • OS/2 – wxOS2, wxPM, wxWidgets para GTK o Motif se puede compilar en OS/2
  • Plataformas incorporadas – wxEmbedded

Puertos externos

  • Amiga – wxWidgets-AOS: Puerto AmigaOS (Work In Progress)

Compiladores compatibles

Se confirma oficialmente que wxWidgets funciona correctamente con los siguientes compiladores:

Toolkit Compilador Versión
wxMSW Microsoft Visual Studio – Visual C++ 5.0+
Borland C++ (traído en 3.1.5) 5,5+
C++Builder 2006+
Watcom C++, OpenWatcom 10.6+
CodeWarrior 7+
Cygwin 1.5+
MinGW 2.0+
Digital Mars C/C++ compilador 8.40+
wxGTK g++ 2.95+
Clang++ 3.3+
Compilador Intel C++ 9.1+
Sun Studio C/C++ 5.9
HP aC++ 3.8
IBM XL C/C++ 8.0

Enlaces de lenguaje de programación

wxPython logo

La biblioteca wxWidgets está implementada en C++, con enlaces disponibles para muchos lenguajes de programación de uso común.

wxWidgets se describe mejor como un conjunto de herramientas de modo nativo, ya que proporciona una ligera abstracción a los widgets nativos de una plataforma, al contrario que emular la visualización de widgets mediante primitivas gráficas. Llamar a un widget nativo en la plataforma de destino da como resultado una interfaz de aspecto más nativo que los juegos de herramientas como Swing (para Java), además de ofrecer rendimiento y otros beneficios.

El kit de herramientas tampoco se limita al desarrollo de GUI, tiene una capa de comunicación entre procesos, funcionalidad de red de socket y más.

Herramientas RAD e IDE para wxWidgets

CodeLite bajo Windows XP
Code::Blocks running under Ubuntu

Hay muchas herramientas de desarrollo rápido de aplicaciones (RAD) y entorno de desarrollo integrado (IDE) disponibles. Las herramientas notables incluyen:

  • Código::Blocks (a través del plugin wxSmith)
  • CodeLite (via wxCrafter plugin)
  • wxFormBuilder

Aplicaciones creadas con wxWidgets

Amaya bajo Windows 7

Aplicaciones notables que usan wxWidgets:

  • 0 A.D. – un videojuego FOSS similar a Edad de los Imperios
  • Amaya – herramienta de autor de la web
  • aMule – aplicación para compartir archivos entre pares
  • ActivePresenter – grabador de pantalla, editor de vídeo y aplicación de aprendizaje electrónico
  • Audacity – editor de sonido multiplataforma
  • BitTorrent – aplicación para compartir archivos entre pares
  • Berkeley Open Infrastructure for Network Computing – un sistema de middleware de código abierto
  • Código: bloques – C/C++ IDE
  • CodeLite – simple C++ Editor (Colección de Herramientas gratuitas, implementadas por plugins)
  • FileZilla – cliente FTP
  • FreeFileSync – un software gratuito de sincronización de archivos de código abierto
  • GrandOrgue – simulador de órganos de tubería virtual
  • Guayadeque Music Player – un reproductor de música con base de datos
  • Hollywood – utiliza wxWidgets en su plugin RapaGUI
  • KiCad – una suite de software libre para la automatización de diseño electrónico (EDA)
  • RapidSVN – cliente de subversión
  • Rocket Cake – WYSIWYG receptivo constructor de sitios web
  • TortoiseCVS – CVS cliente
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save