wxWidgets
Las wxWidgets son unas bibliotecas multiplataforma y libres, para el desarrollo de interfaces gráficas programadas en lenguaje C++. Están publicadas bajo una licencia LGPL, similar a la GPL con la excepción de que el código binario producido por el usuario a partir de ellas, puede ser propietario, permitiendo desarrollar aplicaciones empresariales sin coste de licencias.
wxWidgets | ||
---|---|---|
![]() | ||
Información general | ||
Tipo de programa | Biblioteca de programación | |
Desarrollador | wxWidgets Developers and Contributors | |
Lanzamiento inicial | 1992 | |
Licencia | wxWindows Library Licence | |
Estado actual | Activo | |
Información técnica | ||
Programado en | C++ | |
Versiones | ||
Última versión estable | 3.0.5 ( 27 de abril de 2020 (4 años, 3 meses y 22 días)) | |
Última versión en pruebas | 3.1.7 ( 06 de junio de 2022 (2 años, 2 meses y 13 días)) | |
Enlaces | ||
Las wxWidgets proporcionan una interfaz gráfica basada en las bibliotecas ya existentes en el sistema (nativas), con lo que se integran de forma óptima y resultan muy portables entre distintos sistemas operativos. Están disponibles para Windows, MacOS, GTK+, Motif, OpenVMS y OS/2.
También pueden ser utilizadas desde otros lenguajes de programación, aparte del C++: Java, JavaScript, Perl, Python, Smalltalk, Ruby, Erlang.
Breve historia
editarFue diseñado por Julian Smart en la universidad de Edinburgo 1992. Julian diseñaba la herramienta meta-CASE llamada Hardy que necesitaba correr en Windows, así como en estaciones de trabajo de X-Unix, las herramientas existentes y comerciales multiplataforma eran costosas para un proyecto experimental, así que su única alternativa era crear su propia herramienta. Inicialmente se llamaba wxWindows pero tuvo que cambiar al nombre por wxWidgets debido a que la empresa Microsoft interpuso una demanda a finales de 2003 por una posible confusión con el nombre de su sistema operativo.
WxWidgets (W para Windows y la X para X-Unix) es un framework parecido a MFC, especializado en el desarrollo de aplicaciones multiplataforma en lenguaje C++ aunque también existen bindings para Python y Perl, es multiplataforma, soporta Windows, Linux, Mac OS X , Unix y sus variantes, Solaris, Plataformas Embedded (inicios de investigación ), también en plataformas móviles como Microsoft Pocket PC, y Palm OS; se distribuye bajo licencia wxWindows License (compatible con Open Source y LGPL) permitiendo utilizarla para desarrollos comerciales, siempre y cuando estos desarrollos no usen código distribuido bajo alguna licencia GNU.
Cuenta con una parte denominada wxBase que incluye clases como wxString, clases para el manejo de archivos y directorios de manera independiente del sistema, funcionalidades como: gráficos 2D, 3D con OpenGL, Bases de Datos (ODBC), Redes, Impresión, Hilos, visión e impresión del HTML, un sistema de archivos virtual y cuenta con algunos IDEs.
La razones por las que se podría elegir wxWidgets son además de sus ya mencionadas características es que cuenta con soporte, documentación en Internet, ayuda en línea, foros, tutoriales en diversos formatos, desarrolladores en la red por lo que se percibe interés y un futuro, cuenta con un libro de 1000 páginas imprimibles de documentación y en línea, sistema flexible a eventos, llamadas a gráficos como líneas, rectángulos con esquinas redondeadas, etc. Soporte de MDI (Múltiple Document Interface), puede crear DLL sobre Windows, y bibliotecas dinámicas en Unix.
Licencia
editarwxWidgets es distribuido bajo una licencia personalizada wxWindows License, similar a la Licencia Pública General Reducida de GNU, con la excepción de que trabajos derivados en forma binaria pueden ser distribuido bajo los términos del usuario. Esta licencia está aprobada por la Open Source Initiative,[1] haciendo de wxWidgets software libre.[2] Su nombre será cambiado por wxWidgets Licence.
Soporte oficial
editarCompatibilidad de plataformas
editarwxWidgets es compatible en las siguientes plataformas.[3]
- Windows - wxMSW (Windows XP, Vista, 7, 8 y 10 )
- Linux/Unix wxGTK+, wxX11, wxMotif
- Mac OS X - wxMac (10.5 usando Cocoa o Carbon)
- Plataformas Empotradas - wxEmbedded
Otras plataformas
editar- Amiga - wxWidgets-AOS: AmigaOS port[4]
Compiladores compatibles
editarEstá confirmado que wxWidgets funciona correctamente con los siguientes compiladores.[5]
wxMSW | wxGTK | ||
---|---|---|---|
Compilador | Versión | Compilador | Versión |
Microsoft Visual Studio - Visual C++ Borland C++ Borland C++ Builder Watcom C++, OpenWatcom CodeWarrior Cygwin MinGW Digital Mars C/C++ compiler |
5.0 + 5.5 + 2006 + 10.6 + 7 + 1.5 + 2.0 + 8.40 + |
g++ Sun Studio C/C++ HP aC++ IBM XL C/C++ |
2.95 + 5.9 3.80 8.00 |
Implementaciones
editarLa biblioteca wxWidgets además de estar implementada originalmente en C++, cuenta con implementaciones (bindings) para varios lenguajes de programación utilizados comúnmente. Algunos de ellos:[6]
Lenguaje | Implementación | Versión más reciente | Fecha de versión |
---|---|---|---|
Python | wxPython | 4.0.3 | 2018-06-25[7] |
PHP | wxPHP | 1.1 | 2011-09-22[8] |
Erlang | wxErlang | R14B03 | 2011-05-25[9] |
Haskell | wxHaskell | 0.12.1.2 | 2009-10-13[10] |
Tcl | wxTCL | [11] | |
Lua | wxLua | 2.8.10.0 | 2009-05-24[12] |
Perl | wxPerl | 0.98 | 2010-08-18[13] |
Ruby | wxRuby | 2.0.1 | 2009-09-08[14] |
Smalltalk | wxSqueak | 0.5.1 | 2008-07-06[15] |
Basic | wxBasic | 2.8.10.23 | 2009-09-06[16] |
BlitzMax | wxMax | 1.01 | 2009-10[17] |
C | wxC | [18] | |
D | wxD | 0.15 | 2009-07-03[19] |
Euphoria | wxEuphoria | 0.16.0 | 2011-06-20[20] |
.NET Framework | wx.NET | 0.9.2 | 2010-07-14[21] |
Java | wx4j | 0.2.0 | 2004-04-01[22] |
JavaScript | wxJavaScript | 0.9.75 | 2008-12-09[23] |
JavaScript | GLUEscript | 0.1.08 | 2011-02-18[24] |
Hollywood | RapaGUI | 1.2 | 2017-09-22[25] |
wxWidgets es mejor descrito como un conjunto de herramientas nativo debido a que provee una fina capa de abstracción a los controles nativos de una plataforma, contrario a la emulación de controles utilizando gráficos primitivos. Utilizar un control nativo en las plataformas existentes nos permite conseguir resultados visuales más nativos para la interfaz gráfica que otras bibliotecas como Swing (para Java), además de ofrecer mejor rendimiento y otros beneficios.[26]
wxWidgets no solo se restringe al desarrollo de interfaces gráficas, esto debido a que la biblioteca cuenta con una capa de inter-procesos de comunicación, funcionalidades para la red como sockets, y mucho más.
IDE y RAD para wxWidgets
editarHay muchas herramientas de Desarrollo Rápido de Aplicaciones (RAD) y Entornos de Desarrollo Integrado (IDE) disponibles, entre ellos:[27][28]
- Boa Constructor (Python)
- Code::Blocks (mediante el plugin wxSmith)
- CodeLite
- wxDev-C++ (Plugin)
- wxGlade
- wxFormBuilder
Aplicaciones desarrolladas con wxWidgets
editarAplicaciones populares que utilizan wxWidgets:
- Amaya - Desarrollo web
- aMule - Aplicación de intercambio de archivos
- Audacity - Editor de audio
- BitTorrent - Aplicación de intercambio de archivos
- Code::Blocks - C/C++ IDE
- CodeLite - Editor simple para C++ (Colección de herramientas Gratuitas, implementadas mediante plugins)
- Dolphin - Emulador de Nintendo GameCube, Wii, y Triforce
- Digsby - Aplicación multiprotocolo de mensajería instantánea
- FileZilla - Cliente FTP
- KiCad - Desarrollo de circuitos esquemáticos e impresos
- RapidSVN - Client SVN
- TortoiseCVS - Cliente CVS
- OpenCPN (Visualizador de Cartografía Náutica y posicionamiento mediante el uso de GPS)
- ConverVideoTJC (Amigable Convertidor de video y audio a formato libre mkv, ogg, flac. También permite ripear CD de audio. Disponible solo para GNU/LINUX).
- formatUsbTJC (Práctica Herramienta gráfica, para formatear memorias USB. Disponible solo para GNU/LINUX).
Véase también
editar- Portal:Software libre. Contenido relacionado con Software libre.
Referencias
editar- ↑ «Open Source Initiative OSI - Licencia de la Biblioteca». Open Source Initiative. Consultado el 28 de abril de 2011.
- ↑ «Sitio web de la Licencia». Archivado desde el original el 2 de julio de 2010. Consultado el 22 de septiembre de 2011. «La licencia de la biblioteca wxWindows es esencialmente la L-GPL (Library General Public License), con la excepción que trabajos derivados en forma binaria pueden ser distribuidos bajo los términos del usuario.»
- ↑ «wxWidgets - FAQ General». wxwidgets.org. Consultado el 11 de octubre de 2016.
- ↑ «wxWidgets-AOS: AmigaOS port». Consultado el 24 de abril de 2011.
- ↑ «Plataformas Compatibles». wxwidgets.org. Consultado el 24 de abril de 2011.
- ↑ «Información Genenral de wxWidgets». wxwidgets.org. Consultado el 11 de abril de 2011.
- ↑ «wxPython».
- ↑ «wxPHP». Consultado el 22 de septiembre de 2011.
- ↑ «wxErlang». Consultado el 12 de abril de 2011.
- ↑ «WxHaskell - HaskellWiki». Consultado el 12 de abril de 2011.
- ↑ «wxTcl». Archivado desde el original el 11 de febrero de 2008. Consultado el 12 de abril de 2011.
- ↑ «wxLua». Archivado desde el original el 17 de agosto de 2010. Consultado el 12 de abril de 2011.
- ↑ «wxPerl». Consultado el 12 de abril de 2011.
- ↑ «wxRuby». Archivado desde el original el 6 de marzo de 2009. Consultado el 12 de abril de 2011.
- ↑ «wxSqueak». Archivado desde el original el 13 de septiembre de 2010. Consultado el 12 de abril de 2011.
- ↑ «wxBasic». Archivado desde el original el 3 de agosto de 2009. Consultado el 12 de abril de 2011.
- ↑ «wxMax». Consultado el 12 de abril de 2011.
- ↑ «wxC». Consultado el 12 de abril de 2011.
- ↑ «wxD». Archivado desde el original el 20 de agosto de 2010. Consultado el 12 de abril de 2011.
- ↑ «wxEuphoria». Consultado el 14 de agosto de 2011.
- ↑ «wx.NET». Archivado desde el original el 25 de agosto de 2010. Consultado el 12 de abril de 2011.
- ↑ «wx4j». Consultado el 12 de abril de 2011.
- ↑ «wxJavaScript». Archivado desde el original el 16 de mayo de 2010. Consultado el 12 de abril de 2011.
- ↑ «GLUEscript». Consultado el 12 de abril de 2011.
- ↑ «RapaGUI». Consultado el 13 de julio de 2019.
- ↑ «WxWidgets Comparado A Otras bibliotecas». wxwidgets.org. Consultado el 2 de enero de 2010.
- ↑ «Herramientas para wxWidgets». wxWidgets.org. Consultado el 12 de abril de 2011.
- ↑ «Lista de Entornos de Desarrollo Integrado». wxWidgets.org. Consultado el 12 de abril de 2011.
Enlaces externos
editar- Sitio web oficial del proyecto (en inglés)
- Un pequeño análisis de wxWidgets. Un framework para desarrollos multiplataforma, un artículo de Manuel Cerón (mononeurona.org)
- Foro de wxWidgets
- wxCode
- wxPack
- Sitio oficial del Port wxWidgets-AOS AmigaOS
- Construir GUIs multi-plataforma usando wxWidgets