widget toolkit
A widget toolkit, widget library, GUI toolkit, or UX library is a library (computing), library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to construct the graphical user interface (GUI) of ...
and tools library for creating
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
s (GUIs) for
cross-platform
Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with no significant
code
In communications and information processing, code is a system of rules to convert information—such as a letter, word, sound, image, or gesture—into another form, sometimes shortened or secret, for communication through a communicati ...
changes. A wide choice of
compiler
In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
s and other tools to use with wxWidgets facilitates development of sophisticated applications. wxWidgets supports a comprehensive range of popular
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s and graphical libraries, both
proprietary
{{Short pages monitor
License
wxWidgets is distributed under a custom made ''wxWindows Licence'', similar to the
GNU Lesser General Public License
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
(LGPL), with an exception stating that derived works in
binary form
Binary form is a musical form in 2 related sections, both of which are usually repeated. Binary is also a structure used to choreograph dance. In music this is usually performed as A-A-B-B.
Binary form was popular during the Baroque music, Baro ...
may be distributed on the user's own terms. This
license
A license (American English) or licence (Commonwealth English) is an official permission or permit to do, use, or own something (as well as the document of that permission or permit).
A license is granted by a party (licensor) to another part ...
is a
free software license
A free-software license is a notice that grants the recipient of a piece of software extensive rights to modify and redistribute that software. These actions are usually prohibited by copyright law, but the rights-holder (usually the author) ...
approved by the FSF, making wxWidgets
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
. It has been approved by the
Open Source Initiative
The Open Source Initiative (OSI) is a California public benefit corporation "actively involved in Open Source community-building, education, and public advocacy to promote awareness and the importance of non-proprietary software".
Governance
The ...
(OSI).
Official support
Supported platforms
wxWidgets is supported on the following platforms:
* Windows – (64-bits Windows XP up to Windows 11 and 32-bits Windows 3.11 for Workgroups (with Win32s extension) up to Windows 11)
* Linux/Unix – wxGTK, wxX11, wxMotif
* Mac OS – wxMac ( Mac OS X 10.3 using Carbon, Mac OS X 10.5 using Cocoa), (32/64-bits Mac OS X 10.7 or later)
* OS/2 – wxOS2, , wxWidgets for GTK or Motif can be compiled on OS/2
* Embedded platforms – wxEmbedded
External ports
* Amiga – wxWidgets-AOS: AmigaOS port (Work In Progress)
Supported compilers
wxWidgets is officially confirmed to work properly with the following compilers:
Programming language bindings
The wxWidgets
library
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
is implemented in C++, with bindings available for many commonly used
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s.
wxWidgets is best described as a
native mode
Native describes a computing system as operating directly with an underlying technology; with no intervening communication or translation layers.
Native software
Native software is built to be executed directly by processors that implement ...
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 as Swing (for Java), as well as offering performance and other benefits.
The toolkit is also not restricted to GUI development, having an
inter-process communication
In computer science, interprocess communication (IPC) is the sharing of data between running Process (computing), processes in a computer system. Mechanisms for IPC may be provided by an operating system. Applications which use IPC are often cat ...
layer,
socket
Socket may refer to:
Mechanics
* Socket wrench, a type of wrench that uses separate, removable sockets to fit different sizes of nuts and bolts
* Socket head screw, a screw (or bolt) with a cylindrical head containing a socket into which the hexag ...
networking functionality, and more.
RAD tools and IDEs for wxWidgets
There are many
Rapid Application Development
Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
(RAD) and
Integrated Development Environment
An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
Notable applications that use wxWidgets:
* '' 0 A.D.'' – a
FOSS
Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
video game similar to ''
Age of Empires
''Age of Empires'' is a series of historical real-time strategy video games, originally developed by Ensemble Studios and published by Xbox Game Studios.
The first title in the series, ''Age of Empires'', focused on events in Europe, Afri ...
aMule
aMule is a free peer-to-peer file sharing utility that works with the eDonkey network and the Kad network, offering similar features to eMule and adding others such as GeoIP (country flags). On August 18, 2003 it was forked from the xMule s ...
BitTorrent
BitTorrent is a Protocol (computing), communication protocol for peer-to-peer file sharing (P2P), which enables users to distribute data and electronic files over the Internet in a Decentralised system, decentralized manner. The protocol is d ...
– peer-to-peer file sharing application
*
Berkeley Open Infrastructure for Network Computing
The Berkeley Open Infrastructure for Network Computing (BOINC, pronounced rhymes with "oink") is an open-source middleware system for volunteer computing (a type of distributed computing). Developed originally to support SETI@home, it became ...
– an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
middleware
Middleware is a type of computer software program that provides services to software applications beyond those available from the operating system. It can be described as "software glue".
Middleware makes it easier for software developers to imple ...
system
* Code::Blocks – C/C++ IDE
* CodeLite – simple C++ Editor (Collection of free Tools, implemented by plugins)
*
FileZilla
FileZilla is a free and open-source, cross-platform FTP application, consisting of FileZilla Client and FileZilla Server. Clients are available for Windows, Linux, and macOS. Both server and client support FTP and FTPS (FTP over SSL/TLS), whil ...
– FTP client
* FreeFileSync – a free and open-source file synchronization software
* GrandOrgue – virtual pipe organ simulator
* Guayadeque Music Player – a music player with database
*
Hollywood
Hollywood usually refers to:
* Hollywood, Los Angeles, a neighborhood in California
* Hollywood, a metonym for the cinema of the United States
Hollywood may also refer to:
Places United States
* Hollywood District (disambiguation)
* Hollywood ...
– uses wxWidgets in its RapaGUI plugin
*
KiCad
KiCad ( ) is a free software suite for electronic design automation (EDA). It facilitates the design and simulation of electronic hardware for PCB manufacturing. It features an integrated environment for schematic capture, Printed circuit boar ...
– a free software suite for electronic design automation (EDA)
* RapidSVN – Subversion client
*
TortoiseCVS
TortoiseCVS is a CVS client for Microsoft Windows released under the GNU General Public License. Unlike most CVS tools, it integrates into Windows' shell by adding entries in the contextual menu of the file explorer. Therefore, it does not run ...
– CVS client
See also
*
FLTK
Fast Light Toolkit (FLTK) is a cross-platform widget (graphical control element) library for graphical user interfaces (GUIs), developed by Bill Spitzak and others. Made to accommodate 3D graphics programming, it has an interface to OpenGL, but ...
– a light, cross platform, non-native widget toolkit
* FOX toolkit – a fast, open source, cross-platform widget toolkit
*
GTK
GTK (formerly GIMP ToolKit and GTK+) is a free software cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both Free software, free and ...
– the GIMP toolkit, a widget toolkit used by
GNOME
A gnome () is a mythological creature and diminutive spirit in Renaissance magic and alchemy, introduced by Paracelsus in the 16th century and widely adopted by authors, including those of modern fantasy literature. They are typically depict ...
applications
*
gtkmm
gtkmm (formerly known as gtk-- or gtk minus minus) is the official C++ interface for the popular GUI library GTK. gtkmm is free software distributed under the GNU Lesser General Public License (LGPL).
gtkmm allows the creation of user interfa ...
– C++ version of GTK
*
Juce
JUCE is an open-source software, open-source cross-platform C++ application framework, used for the development of desktop and mobile applications. JUCE is used in particular for its graphical user interface, GUI and Plug-in (computing), plug-in ...
– an extensive cross-platform widget toolkit
* IUP – a multi-platform toolkit for building native graphical user interfaces
*
Qt (toolkit)
Qt ( pronounced "cute") is a cross-platform application development framework for creating graphical user interfaces as well as Cross-platform software, cross-platform applications that run on various software and hardware platforms such as L ...
– an application framework used by
KDE
KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that enable collaborative work on its projects. Its products include the KDE Plasma gra ...
applications
* U++ – a C++ cross-platform development framework
*
Widget toolkit
A widget toolkit, widget library, GUI toolkit, or UX library is a library (computing), library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to construct the graphical user interface (GUI) of ...
*
List of widget toolkits
This article provides a list of widget toolkits (also known as GUI frameworks), used to construct the graphical user interface (GUI) of programs, organized by their relationships with various operating systems.
Low-level widget toolkits
Integrat ...