This articlerelies excessively onreferences toprimary sources. Please improve this article by addingsecondary or tertiary sources. Find sources: "WxWidgets" – news ·newspapers ·books ·scholar ·JSTOR(June 2011) (Learn how and when to remove this message) |
![]() | |
Original author(s) | Julian Smart[1][2][3] |
---|---|
Developer(s) | Various developers and contributors[4] |
Initial release | 1992; 33 years ago (1992)[5] |
Stable release | 3.2.6 (9 September 2024; 6 months ago (2024-09-09)[6]) [±] |
Repository | |
Written in | C++ |
Operating system | Cross-platform |
Type | Developmentlibrary |
License | wxWidgets Licence |
Website | wxwidgets |
wxWidgets (formerlywxWindows) is awidget toolkit and tools library for creatinggraphical user interfaces (GUIs) forcross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with no significantcode changes. A wide choice ofcompilers and other tools to use with wxWidgets facilitates development of sophisticated applications.[7] wxWidgets supports a comprehensive range of popularoperating systems and graphical libraries, bothproprietary andfree.
The project was started under the name wxWindows in 1992 by Julian Smart at theUniversity of Edinburgh.[1] The project was renamed wxWidgets in 2004 in response to a trademark claim byMicrosoftUK.
It isfree andopen source software, distributed under the terms of thewxWidgets Licence, which satisfies those who wish to produce forGPL andproprietary software.[8]
wxWidgets covers systems such asMicrosoft Windows,Mac OS (Carbon andCocoa),iOS (Cocoa Touch),Linux/Unix (X11,Motif, andGTK),OpenVMS,OS/2 andAmigaOS. A version forembedded systems is under development.[9]
wxWidgets is used across various industry sectors, most notably byXerox,Advanced Micro Devices (AMD),Lockheed Martin,NASA and theCenter for Naval Analyses. It is also used in the public sector and education by, for example,Dartmouth Medical School,National Human Genome Research Institute,National Center for Biotechnology Information, and many others.[7] wxWidgets is used in many open source projects,[10] and by individual developers.
wxWidgets (initially wxWindows; "w" is forWindows, and "x" is forX Window System)[11] was started in 1992 by Julian Smart at theUniversity of Edinburgh.[1] He attained an honours degree inComputational science from theUniversity of St Andrews in 1986, and is still a core developer.[2]
On 20 February 2004, the developers of wxWindows announced that the project was changing its name towxWidgets, as a result ofMicrosoft requesting Julian Smart to respect Microsoft'sUnited Kingdomtrademark of the termWindows.[12]
Major release versions were 2.4 on 6 January 2003, 2.6 on 21 April 2005 and 2.8.0 on 14 December 2006. Version 3.0 was released on 11 November 2013.
wxWidgets has participated in theGoogle Summer of Code since 2006.[13][14]
Debian FSG compatible | Yes |
---|---|
FSFapproved | Yes |
OSIapproved | Yes |
GPL compatible | Yes |
Copyleft | Yes |
Linking from code with a different licence | Yes |
Website | www![]() |
wxWidgets is distributed under a custom madewxWindows Licence, similar to theGNU Lesser General Public License (LGPL), with an exception stating that derived works inbinary form may be distributed on the user's own terms.[8] Thislicense is afree software license approved by the FSF,[15] making wxWidgetsfree software. It has been approved by theOpen Source Initiative (OSI).[16]
wxWidgets is supported on the following platforms:[17][18]
wxWidgets is officially confirmed to work properly with the following compilers:[20][21]
Toolkit | Compiler | Version |
---|---|---|
wxMSW | Microsoft Visual Studio – Visual C++ | 5.0+ |
Borland C++ (dropped in 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++ compiler | 8.40+ | |
wxGTK | g++ | 2.95+ |
Clang++ | 3.3+ | |
Intel C++ Compiler | 9.1+ | |
Sun Studio C/C++ | 5.9 | |
HP aC++ | 3.8 | |
IBM XL C/C++ | 8.0 |
The wxWidgetslibrary is implemented inC++, withbindings available for many commonly usedprogramming languages.[22]
wxWidgets is best described as anative mode toolkit as it provides a thin abstraction to a platform's native widgets, contrary to emulating the display of widgets using graphic primitives. Calling a native widget on the target platform results in a more native looking interface than toolkits such asSwing (for Java), as well as offering performance and other benefits.[23]
The toolkit is also not restricted to GUI development, having aninter-process communication layer,socket networking functionality, and more.
There are manyRapid Application Development (RAD) andIntegrated Development Environment (IDE) tools available. Notable tools include:[24][25]
Notable applications that use wxWidgets:
The wxWindows Licence is essentially the LGPL, with an exception stating that derived works in binary form may be distributed on the user's own terms.