Fact-checked by Grok 2 weeks ago

wxWidgets

wxWidgets is a free and open-source C++ library that enables developers to create cross-platform graphical user interfaces (GUIs) and applications with a single codebase, supporting platforms such as Windows, macOS, , and systems while providing a native through platform-specific . Originally developed in 1992 at the of Edinburgh's Applications Institute by Julian Smart, wxWidgets—formerly known as wxWindows—began as a project to facilitate portability between Unix and Windows environments, evolving over the decades to incorporate support for additional toolkits like GTK+ and . Key features include a comprehensive set of controls, networking capabilities, multithreading support, image handling, rendering, and systems, allowing for advanced application development without sacrificing performance or platform integration. It is licensed under the wxWindows Library Licence, a modified version of the GNU Lesser General Public License (LGPL) that permits static linking and proprietary use without requiring distribution. wxWidgets supports modern standards such as and later, high-DPI displays, dark mode, and various image formats like , with active maintenance evidenced by recent releases including version 3.3.1 in July 2025. Language bindings extend its usability to (via ), Perl, Ruby, Lua, and C#, broadening its appeal beyond C++ developers. Notable adopters include organizations such as , , and , reflecting its reliability for both open-source projects and commercial software.

Introduction

Overview

wxWidgets is a free and open-source C++ library designed for creating cross-platform graphical user interfaces (GUIs) that provide a native on various desktop operating systems, including Windows, macOS, and . It enables developers to build applications that integrate seamlessly with the underlying platform's widgets and behaviors, avoiding the need for platform-specific code in most cases. The core philosophy of wxWidgets emphasizes platform independence where possible, while leveraging native controls to deliver authentic user experiences across environments. This approach supports the principle of "write once, compile anywhere," allowing a single codebase to be compiled and deployed on multiple platforms without sacrificing native performance or aesthetics. Distributed under the permissive wxWindows Library Licence, wxWidgets facilitates both open-source and development by granting broad rights to modify and distribute applications built with it. It is widely used for developing desktop applications, productivity tools, and utilities that require robust, cross-platform compatibility. As of November 2025, the stable 3.2 series remains at version 3.2.8.1, released in May 2025, while the development 3.3 series is at version 3.3.1, released in July 2025.

Key Features

wxWidgets provides cross-platform portability by offering a unified C++ API that enables developers to create applications for Windows, macOS, , and other platforms using a single codebase, while achieving a native through platform-specific backends such as wxMSW for Windows and wxGTK for Unix-like systems. The library features an extensive widget set, encompassing basic controls like buttons, text entries, and sliders, as well as more complex elements such as windows, dialogs, menus, toolbars, grids (via wxGrid), and tree controls (via wxTreeCtrl), all mapped to native implementations where possible. It employs an model, where user interactions and system events are handled through mechanisms like event tables—static arrays associating event types with handler functions—and dynamic connections via the Connect() method, allowing for flexible and efficient response to inputs without polling. Internationalization is supported natively with full encoding, the wxLocale class for managing regional settings like date formats and currencies, and tools for translation such as message catalogs compatible with , enabling multilingual applications with minimal code changes. Recent versions have introduced modern enhancements, including dark mode support starting with version 3.2 for macOS and extended to Windows in 3.3, built-in support through wxWebRequest and related classes for secure networking, and improved accessibility via the wxAccessible class, which provides interfaces for screen readers and assistive technologies on supported platforms. In terms of , wxWidgets maintains a lightweight footprint by leveraging native platform directly, resulting in no additional runtime dependencies beyond those of the host operating system, and employs efficient through and smart pointers to minimize overhead. Compared to alternatives, wxWidgets offers advantages over by avoiding licensing fees—being distributed under the permissive wxWindows Library Licence, which allows proprietary use without royalties—and over pure native by reducing the need for platform-specific code through its , while still delivering native and .

History

Origins and Early Development

wxWidgets originated in 1992 at the Artificial Intelligence Applications Institute of the , where Julian Smart initiated the project as a portable () to support the of a meta-CASE tool named Hardy. This tool required cross-platform compatibility between Windows and Unix systems using the (X11), prompting Smart to create a set of C functions that mirrored the while interfacing with X11. The library's initial design drew influences from ' XView toolkit for Unix and 's 1.0 for Windows, which shaped its early structure. The name "wxWindows" reflected these platforms, with "w" denoting Windows and "x" referring to the . Early development focused on establishing core ports, beginning with XView and integrations, but as XView's popularity waned, a port was added to maintain Unix support. The Windows port was rewritten to utilize the native , accommodating compilers like Borland C++ and enhancing performance. Key contributors during this phase included Markus Holzem, who released an Xt (X Toolkit Intrinsics) port in 1995, and Wolfram Gloger, who suggested a GTK+ port to broaden Unix compatibility. By 1996, however, the project faced stagnation due to Smart's temporary departure amid the rising prominence of , leading to maintainer changes and a need for architectural overhaul. In 1997, Smart returned alongside other developers to re-engineer the library, redesigning the wxWidgets 2.0 API for improved stability and extensibility. Robert Roebling played a pivotal role in this effort, leading the development of the wxGTK port, with alpha releases emerging in 1998 that merged the Windows and GTK+ implementations into a unified codebase via CVS. This port significantly expanded Unix support by leveraging the emerging GTK+ toolkit. The pre-2.0 era was marked by challenges such as limited , which hindered adoption, and slow growth, though the project's open-source nature from its laid the groundwork for broader contributions. The name was changed to wxWidgets in to resolve concerns raised by regarding "Windows."

Major Releases

The evolution of wxWidgets is marked by several major releases starting from version 2.4, each introducing significant enhancements to stability, platform integration, and feature sets while maintaining backward compatibility where possible. These releases reflect the library's maturation from a cross-platform toolkit focused on core GUI functionality to one supporting modern hardware, input methods, and build tools.
VersionRelease DateKey Features and Updates
2.4January 6, 2003Improved overall stability across platforms; enhanced support for Windows XP themes and visual styles; initial implementation of Unicode handling for better internationalization.
2.6April 21, 2005Overhaul of the printing framework for more reliable cross-platform output; numerous bug fixes and performance improvements.
2.8December 13, 2006Comprehensive refactor to enable full 64-bit compatibility on supported platforms; addition of media control classes like wxMediaCtrl for audio and video playback.
3.0November 13, 2013First major version update since 2.0 in 1998, marking a significant milestone after years of development; adoption of CMake as the primary build system alongside traditional makefiles; added touch and gesture event handling for mobile and tablet interfaces; deprecation of legacy ports like wxMotif and initial wxX11 to streamline maintenance.
3.2July 7, 2022Native dark mode support on macOS 10.14 and later for improved usability in low-light environments; integrated HTTPS and HTTP/2 client capabilities through wxWebRequest; enhanced wxWebView with a new Microsoft Edge backend for better web content rendering.
3.3.0June 6, 2025Initial release in the development branch with dark mode support on Windows; wxWebView enhancements including a new Chrome-based backend; wxImage support for WebP format; high-DPI support for cursors and animations; performance optimizations and updates to third-party libraries.
3.3.1July 21, 2025Bug-fix release in the 3.3 development branch, addressing issues from 3.3.0 including important fixes and over 200 changes for stability and compatibility.
Over time, wxWidgets has shifted from a primary reliance on the wxGTK backend for systems to offering multiple backend options, including improved + 3 integration and experimental alternatives like wxQt, allowing developers greater flexibility in deployment scenarios. Since version 3.0, the has achieved long-term stability, minimizing breaking changes in subsequent releases to support applications. As of November 2025, the 3.2.x series remains the stable maintenance branch, receiving regular updates for security and compatibility, while 3.3.x (latest 3.3.1) serves as the active development track.

Licensing and Distribution

License Terms

wxWidgets is licensed under the wxWindows Library Licence version 3.1, an OSI-approved license that is based on the version 2 or later, augmented with a specific exception to facilitate development. This dual-licensing approach also includes direct application of the LGPL for certain files, ensuring compatibility with GPL-licensed applications while providing flexibility for commercial use. The license permits free use, modification, and of the library in both source and binary forms without royalties or fees. Key permissions under the wxWindows Library Licence include the right to redistribute and modify the , with binary distributions allowable under the user's own terms, without mandating the of the application's —even when statically linking wxWidgets into . Attribution is required in for distributions, but there are no obligations to release modifications to the library itself unless they are distributed as derivatives. The license explicitly disclaims any warranty, stating that the software is provided "as is" without guarantees of merchantability or fitness for a particular purpose. Historically, the was named the wxWindows Library Licence to reflect the project's original name, but following the project's to wxWidgets in —to avoid confusion with the Windows operating system—the license name remained unchanged pending formal OSI recognition of an updated "wxWidgets Library Licence," which would be identical in terms except for the name. This change emphasized the library's cross-platform nature independent of any operating system. Exceptions and requirements address third-party components integrated into wxWidgets, such as the Independent JPEG Group's library, which falls under a separate permissive allowing use and modification but requiring specific notices in distributions. Users must comply with these individual component licenses when handling derivatives or distributions involving them, ensuring no infringement on external copyrights. Compared to GPL-based libraries, the wxWindows Library Licence is more permissive, as it does not impose requirements on linked applications, allowing closed-source binaries similar to the BSD license but retaining LGPL-style protections for the library's own derivatives. This balance encourages both open-source and commercial adoption by avoiding forced revelation for end-user applications. As of , the has seen no major changes since 3.1, with recent releases like wxWidgets 3.3.1 continuing under these terms to promote widespread commercial and open-source use.

Deployment Considerations

wxWidgets applications are distributed as native binaries that leverage the underlying platform's libraries, requiring no additional DLLs beyond those provided by the operating itself. This design ensures that executables can run directly without installing a separate wxWidgets , simplifying deployment on supported platforms. Developers have the option to statically link the wxWidgets libraries into their applications, producing self-contained executables that eliminate dependencies on shared libraries altogether. Static linking is achieved by building wxWidgets with the appropriate flags, such as BUILD_SHARED=0 in the build system, and linking against the resulting static library files (e.g., libwxmsw.a on systems or .lib files on Windows). This approach is particularly useful for creating portable distributions that do not rely on system-installed versions of wxWidgets, though it increases the executable size compared to dynamic linking. Achieving portability in wxWidgets deployments involves addressing platform-specific resources to maintain consistent appearance and behavior across environments. For instance, icons and images must be handled differently: on Windows, they are typically embedded via resource scripts (.rc files) during compilation, while on macOS and Unix systems, they are loaded from external files or bundled in application packages. , required on Windows for features like DPI awareness or UAC elevation, add another layer of platform specificity that developers must manage through conditional compilation directives like #ifdef __WXMSW__. Ensuring consistent behavior requires testing for variations in native rendering, such as dialog sizing or font metrics, which can differ between platforms; tools like wxFormBuilder or manual adjustments using wxSize and wxFont help mitigate these issues. Cross-platform is facilitated by wxWidgets' wxResource system or , allowing XML-based definitions that abstract platform details. wxWidgets supports multiple build systems to facilitate deployment, including official integration starting with version 3.0, which enables generating project files for various and cross-compilation setups. usage involves finding the wxWidgets package via find_package(wxWidgets) and linking with ${wxWidgets_LIBRARIES}, supporting options for static or shared builds and platform-specific configurations. Traditional Autotools are available for systems, providing configure scripts for customization, while IDE-specific projects (e.g., .sln files or projects) are generated during the library build. Cross-compilation guides are provided in the documentation, recommending toolchains like for Windows-on-Linux builds, with steps to set environment variables such as WXWIN and WXCFG for consistent library detection. These systems allow developers to create deployment packages tailored to target architectures without rebuilding the entire library from source each time. The 3.x series of wxWidgets maintains ABI stability within even-numbered minor releases (e.g., 3.2.x), ensuring that applications built against one version in the series remain compatible with others without recompilation. This stability is achieved through careful management of public interfaces, with binary compatibility guarantees documented in for the 3.2 branch, allowing seamless updates for deployed applications. Migration from the 2.x series to 3.x requires addressing backwards-incompatible changes, such as the removal of deprecated functions like wxGetOsVersion or shifts in handling, with comprehensive guidance provided in the changes overview. warnings are emitted during compilation to flag obsolete APIs, aiding gradual upgrades; for example, transitioning from wxString::Mid to wxString::substr ensures future-proofing. Developers are advised to recompile against the target 3.x version and test for behavioral differences, particularly in event handling and string operations. Security in wxWidgets deployments integrates with platform-native mechanisms, such as on macOS to comply with and notarization requirements for distribution outside the . Applications must be signed using tools like codesign with an Apple ID, embedding entitlements for features like network access, which wxWidgets supports through its native backend without additional modifications. Recommendations emphasize using the latest stable release, such as 3.2.8.1 as of May 2025, to benefit from patches addressing vulnerabilities in native dependencies or the library itself. Regular updates mitigate risks like overflows in older versions, with release announcements highlighting fixed issues. Optimizing binary size is crucial for lightweight deployments, with techniques like disabling unused features in the setup.h configuration header during library compilation. By defining macros such as wxUSE_HTML=0 or wxUSE_ADVANCED_SIZER=0 for unneeded components (e.g., HTML rendering or complex layout algorithms), developers can exclude entire modules, reducing the library footprint significantly. For example, stripping advanced widgets and protocols from a minimal application can shrink the static binary from approximately 5 to under 1 , as demonstrated in build experiments with on Windows. Post-build tools like strip on Unix or UPX compression further trim executables by removing debug symbols and optimizing code , while dynamic linking preserves modularity for shared environments. These optimizations maintain full functionality for core elements while minimizing distribution overhead.

Technical Architecture

Core Components

wxWidgets employs an object-oriented design centered around a class hierarchy that facilitates cross-platform development. At the root of this hierarchy is the wxObject class, which serves as the base for many wxWidgets classes, enabling dynamic object creation and supporting reference counting for memory management. Derived from wxObject, the wxWindow class forms the foundation for all visible user interface elements, representing any on-screen object such as controls or containers. Further specializations include wxFrame, a resizable top-level window typically featuring borders, a title bar, and support for menus, toolbars, and status bars, and wxDialog, a modal or modeless window designed for user input or queries, often with automatic layout adaptation. The application framework is anchored by the wxApp class (or its console variant wxAppConsole), which manages the application's lifecycle, including initialization via the overridden OnInit() method, event loop processing, and shutdown procedures. This class tracks the application's top-level windows and ensures proper resource cleanup, making it essential for both GUI and console applications. Resource management in wxWidgets is handled through the XML-based resource system (XRC), implemented via wxXmlResource, which allows UI elements like dialogs, menus, and toolbars to be defined in XML files and loaded at runtime for dynamic interface construction. This approach promotes separation of UI design from code, with handlers like wxXmlResourceHandler parsing XML nodes to instantiate corresponding objects. The threading model emphasizes safety in multi-threaded environments, designating the main thread exclusively for operations while worker threads handle background tasks, supported by classes such as wxThread for creating detached or joinable s and wxThreadEvent for inter-thread communication without direct GUI . Mechanisms like wxCriticalSection and wxCondition ensure , preventing conditions in shared . For configuration and preferences, the wxConfig base class and its implementations (e.g., wxFileConfig for file-based storage or wxRegConfig for registry on Windows) provide a platform-agnostic to read and write user settings in a hierarchical structure, abstracting differences between file systems and registries. Utilities like wxConfigPathChanger facilitate scoped path changes during operations. Error handling integrates assertion macros for debug-time checks, comprehensive logging through the wxLog class and its derivatives (e.g., wxLogGui for message boxes), and C++ exception support for runtime errors, allowing developers to define custom log targets or formatters. Logging levels, from traces to fatal errors, ensure messages are routed appropriately, with chaining via wxLogChain to maintain multiple sinks. This framework integrates with the event system to propagate errors without disrupting the main application flow.

Widget and Event System

wxWidgets provides a comprehensive widget system that abstracts platform-specific user interface elements into a unified set of , enabling developers to create cross-platform applications with native appearance and behavior. The base class wxControl serves as the foundation for most , representing small windows that process user input and display data, such as buttons, text fields, and sliders. For instance, classes like wxButton and wxTextCtrl map directly to native controls on each supported platform—such as Win32 buttons on Windows, Cocoa NSButton on macOS, and GTK+ GtkButton on —ensuring consistent functionality while leveraging the underlying system's rendering and interaction capabilities. This abstraction allows code written once to render appropriately across environments without modification. Layout management in wxWidgets relies on sizers, which are flexible container objects that arrange widgets responsively based on available space, window resizing, and platform variations in sizing metrics. Sizers compute the minimum size required for their contents and handle positioning automatically, promoting resolution-independent designs that adapt to different screen densities and orientations. Key implementations include wxBoxSizer for linear arrangements (horizontal or vertical) with proportional stretching and wxGridSizer for tabular s where cells expand equally. These sizers can be nested hierarchically within windows or panels, and methods like SetSizer integrate them into the widget hierarchy, triggering automatic layout updates on events such as resizing. The event system in wxWidgets facilitates interaction handling through a dispatcher that routes user-generated events, such as clicks or key presses, to appropriate handlers in a two-phase propagation model: first skipping to parent windows if unhandled, then bubbling up the hierarchy. Events can be bound statically using event tables, defined via macros like BEGIN_EVENT_TABLE and END_EVENT_TABLE in a class implementation file, which map event types (e.g., wxEVT_BUTTON) to member functions at compile time for efficiency. Alternatively, dynamic binding supports runtime flexibility through Connect/Disconnect methods or the more modern Bind/Unbind API, allowing events to be attached to arbitrary objects without recompilation. This dual approach accommodates both performance-critical static mappings and adaptable dynamic scenarios. Custom widgets extend the core system by deriving from wxControl (for input-processing elements) or wxWindow (for simpler containers), inheriting base functionality while overriding behaviors to add specialized features like custom drawing or validation. Developers implement painting logic in the OnPaint virtual event handler, using a device context (wxDC) to render graphics, text, or images directly onto the widget's surface, ensuring portability across backends like GDI, Quartz, or Cairo. This derivation model supports seamless integration into sizer layouts and event flows, with the custom class handling its own input and appearance without altering the native mapping. Input processing encompasses , , and events, processed via the event dispatcher to virtual functions that can be overridden in derived classes for customized responses. Keyboard events include wxKeyEvent for key down/up and character input, with modifiers like Shift or Ctrl testable via helper methods; mouse events via wxMouseEvent capture clicks, movements, and wheel actions, often with hit-testing for complex widgets. Timer events, managed by wxTimer, trigger periodic callbacks for animations or polling. Examples of overridable virtuals include OnClose for window shutdown queries and OnKeyDown for direct key interception. Accessibility support is integrated through the wxAccessible class, which provides an for querying and navigating UI elements, enabling compatibility with platform-specific assistive technologies like screen readers on Windows (via MSAA), macOS (via NSAccessibility), and (via ATK). Widgets derive accessibility information from their native implementations where possible, with developers overriding methods in wxAccessible to expose custom descriptions, roles, and states (e.g., focusable or selected) for non-standard controls, ensuring and output without code duplication. This feature is enabled at and leverages the event system for dynamic updates.

Platform Support

Primary Platforms

wxWidgets primarily supports three core platforms through its officially maintained backends: Windows via wxMSW, and other systems via wxGTK, and macOS via wxOSX/. These backends leverage native to provide a consistent application programming (API) while ensuring applications adopt the native look and feel of each platform. The wxMSW backend targets Windows operating systems, supporting versions from to in both 32-bit and 64-bit architectures, including and ARM64 for 64-bit. It utilizes the Win32 for rendering widgets and handling system interactions, enabling features such as per-monitor DPI awareness to accommodate high-resolution displays and integration with Windows theming for consistent visual styling. Additionally, wxMSW incorporates backend-specific optimizations, including through the renderer in wxGraphicsContext, which enhances drawing performance for complex graphics. For Linux and Unix variants, the wxGTK backend serves as the primary implementation, relying on GTK+ 3 (introduced as the default since wxWidgets 3.0) to deliver native widget rendering. This backend supports both X11 and display servers, with ongoing improvements for Wayland compatibility, such as fixes for resizing operations in canvases. It also extends to embedded environments through GTK on mobile and devices, maintaining cross-platform consistency in event handling and elements. On macOS, the wxOSX/Cocoa backend provides native support for the Aqua interface, compatible with versions from macOS 10.10 and later on both and (ARM) architectures, including recent versions such as macOS . It employs the framework for UI components, ensuring seamless integration with system features, and includes support for modern rendering via Core Graphics, which benefits from on Metal-enabled hardware. Across these primary platforms, wxWidgets offers unified access to native system capabilities, including file dialogs via platform-specific implementations like Common Item Dialogs on Windows or NSOpenPanel on macOS, printing frameworks that utilize system printers, and operations for data interchange. These integrations minimize custom code while maximizing native performance and user familiarity.

External and Emerging Ports

wxQt serves as a community-maintained backend for wxWidgets, utilizing the framework to provide an alternative to the GTK backend, particularly suited for and cross-platform development on modern desktops. This port requires Qt 5 or later, with recent efforts in 2024 adding semi-support for Qt 6, enabling builds via and running basic samples like widgets and 3D demos. While compatible with the core wxWidgets , wxQt remains experimental, with potential gaps in advanced features, and is actively discussed in community forums for integration into projects like . For embedded systems, wxWidgets features limited ports that extend its reach to mobile and niche operating systems. The Android port, known as wxAndroid, incorporates C++ and Java components to support GUI applications, though it is not production-ready and relies on elements like wxWebView for web rendering capabilities. Similarly, the iOS port (wxiOS) allows building simple applications using and 9.0 or later, but it is far from a complete , lacking full support and intended primarily as a foundation for future enhancements. On OS, support is available through community efforts like the wxHaiku project, which ports wxWidgets for native integration, though the core repository has not seen updates since 2016 and relies on backends such as wxQt or wxGTK for functionality. Legacy platforms maintain specialized ports through ongoing community involvement. The wxOS2 port targets Warp 3/4 and eComStation, providing GUI framework support in version 2.8.12, with binaries distributed as ZIP packages for manual installation on these systems. For , the Carbon-based wxMac port enabled applications on and early macOS, but it was deprecated and removed in wxWidgets 3.1.0 due to Carbon's obsolescence, particularly for 64-bit support, urging migration to Cocoa-based alternatives. Emerging developments as of 2025 include initial efforts toward a port, which compiles wxWidgets using to run applications in browsers, supporting core features like and basic widgets while excluding advanced libraries such as libtiff. For , optimizations focus on cross-compilation for architecture under , leveraging the wxGTK backend for efficient performance on resource-constrained embedded devices, with community guides emphasizing minimal configurations to reduce binary size and improve responsiveness. These external and emerging ports exhibit variable maintenance levels, often driven by dedicated contributors, ensuring API compatibility with the wxWidgets core but with feature gaps that require custom adaptations. They find use in niche scenarios, such as legacy system preservation on or eComStation, lightweight embedded interfaces on and , browser-based prototypes via , and optimized deployments on single-board computers like where primary ports may demand excessive resources.

Development Environment

Supported Compilers

wxWidgets officially supports a range of C++ compilers that conform to at least the standard, enabling developers to build applications across its primary platforms. The library is designed to be compatible with modern compilers, with recommendations for or later where possible, though remains the minimum requirement for version 3.2.x. Microsoft Visual C++ (MSVC) is a primary compiler for Windows development, with versions from 2015 to 2022 fully supported, including both 32-bit and 64-bit architectures. Pre-built binaries are available for these MSVC versions, facilitating quick setup without source compilation. For cross-platform and systems, (GCC) versions 4.8 and later are supported, up to version 15, including for Windows cross-compilation and native use on and macOS. Versions 7 and above are recommended for optimal performance on and macOS due to enhanced C++11/14 feature support. Clang, part of the LLVM project, is supported from version 5 onward across all platforms, with versions up to 19 tested in recent releases; it is particularly preferred for macOS due to its integration with Apple's toolchain. Additional compilers include the , which emulates MSVC behavior on Windows and is compatible via standard build configurations, and , supported for Windows applications through project adaptations. wxWidgets supports ARM64-targeted compilers for Windows on ARM64 and macOS ARM64. Builds require appropriate compiler flags for optimizations, such as enabling features via -std=c++11 or equivalent. The project employs automated (CI) pipelines to test major compiler-platform combinations, ensuring ongoing compatibility with each release, including the latest stable version 3.2.8.1.

Integrated Development Environments and RAD Tools

Code::Blocks is an open-source, cross-platform (IDE) that includes a built-in wizard for wxWidgets projects, streamlining setup by automatically configuring include directories, library paths, and compiler flags for both debug and release builds. This wizard also supports debugging integration, allowing developers to step through wxWidgets applications with breakpoints and variable inspection. wxDev-C++ serves as a lightweight forked from the original Dev-C++, customized for wxWidgets with an embedded form designer that enables visual layout of dialogs and frames, mimicking the interface of tools like for . The designer generates wxWidgets-compatible code, facilitating quick iteration on user interfaces without manual sizer or event wiring. Among (RAD) tools, wxFormBuilder provides a , open-source drag-and-drop builder for constructing wxWidgets user interfaces, supporting the creation of dialogs, panels, menus, and toolbars while generating either XRC resource files for runtime loading or direct C++ for compile-time inclusion. DialogBlocks, a alternative, offers an advanced sizer-based editor for designing complex dialogs, frames, and wizards, with features like previewing on multiple platforms and automatic for event handling and resource embedding. Eclipse, augmented by the C/C++ Development Tooling (CDT) plugin, accommodates wxWidgets development through manual or scripted project configurations that handle include paths, preprocessor definitions, and linker settings for cross-platform builds. This setup enables code editing, syntax validation, and within a unified workspace. Common integration features across these environments include for C++ and wxWidgets-specific syntax, such as event table macros, which aids in identifying and navigating bindings. compilation, particularly for XRC files, is managed via the wxrc utility incorporated into build scripts or makefiles, converting XML resources into embeddable C++ code. Cross-platform project management is achieved by supporting multiple compiler backends, allowing seamless switching between platforms like Windows, macOS, and .

Language Bindings

Primary Bindings

wxPython is the primary binding for the Python programming language, providing a wrapper around the wxWidgets C++ library to enable the creation of native cross-platform GUI applications using Python's syntax and features. Developed as Project Phoenix (version 4.x), it utilizes the SIP binding generator to produce Python extension modules that closely mirror the wxWidgets API, supporting wxWidgets 3.2 and later versions while compatible with Python 3.8 and above. This binding is particularly valued for scripting, rapid prototyping, and integrating wxWidgets functionality into Python workflows, allowing developers to leverage Python's dynamic typing and extensive ecosystem. Key features of wxPython include seamless event handling through the Bind method, which translates wxWidgets events (such as wx.EVT_BUTTON) into Python callbacks, ensuring responsive user interfaces. It integrates with Python's garbage collection system via , automatically managing the lifecycle of wxWidgets objects to prevent memory leaks without manual intervention. Platform consistency is maintained across Windows, macOS, and , utilizing native widgets for authentic . Installation is straightforward via pip with pre-built binary wheels, using the command pip install wxPython, which handles dependencies for supported platforms. However, wxPython has limitations in exposing certain advanced C++ features of wxWidgets, such as templates and some STL integrations, due to the constraints of the SIP binding process, requiring developers to work around these in Python code. wxRuby, specifically wxRuby3 (version 1.0.0), serves as the primary binding for , offering a SWIG-generated wrapper that adapts wxWidgets for Ruby-based desktop application development. It targets 2.7 and later, supporting wxWidgets 3.2 and above, and emphasizes Ruby's concise syntax for building cross-platform GUIs with native controls on Windows, macOS, and /GTK. Maintained by a dedicated team with announcements on the official wxWidgets site, it aims for API parity with the C++ core where feasible, facilitating porting of wxWidgets knowledge to Ruby projects. wxRuby3 translates wxWidgets events into Ruby handlers, such as evt_button for button clicks, enabling idiomatic Ruby . Garbage collection is handled through Ruby's mark-and-sweep mechanism, integrated with SWIG's ownership policies to ensure safe of wrapped objects. The binding preserves platform consistency by deferring to wxWidgets' native implementations. Installation occurs via with the command gem install wxruby3, including pre-built binaries and a setup tool for custom configurations. Like , wxRuby3 does not fully expose advanced C++ elements, including templates, limiting access to some aspects of wxWidgets and necessitating alternative Ruby patterns for complex scenarios.

Community-Driven Bindings

Community-driven bindings for wxWidgets extend its usability to less common programming languages through unofficial efforts by developers and enthusiasts. These bindings, often maintained by small teams or individuals, provide wrappers that allow leveraging wxWidgets' cross-platform capabilities while integrating with the idiomatic features of their languages. Unlike official bindings, they may vary in completeness, maintenance, and compatibility with the latest wxWidgets releases, but they enable specialized applications such as scripting tools or interfaces. One prominent example is wxPerl, a Perl binding implemented using the XS extension system to interface with wxWidgets' C++ core. It facilitates the creation of applications in , particularly suited for system administration tools that require rapid prototyping and integration with Perl's text-processing strengths. As of October 2025, wxPerl remains actively maintained, with version 3.009 released to address compatibility issues with wxWidgets 3.3.1, available via . wxHaskell offers a functional binding for the programming language, emphasizing declarative construction through monadic compositions and pure functions to manage UI logic. This approach aligns with 's and immutability, making it ideal for applications where UI state is derived functionally. The binding supports wxWidgets 3.2 and includes the binding-wx package for handling mutable data and lists in widgets; it was last updated in June 2024 on the HaskellWiki, indicating limited but ongoing relevance in the ecosystem. wxLua provides Lua bindings that embed wxWidgets functionality into Lua scripts, enabling lightweight GUI extensions, particularly in game development where Lua is commonly used for scripting. Its modular design allows for standalone executables or embedding within larger applications, with recent activity confirmed by forum discussions in August 2025 on integration challenges. The project, hosted on , continues to support modern wxWidgets versions and benefits from Lua's simplicity for rapid iteration in interactive environments. For Java, wx4j represents a partial binding effort, wrapping select wxWidgets components to provide native GUI elements in Java applications. However, development stalled after version 0.2 in 2004, leaving it incompatible with recent wxWidgets releases and limited to legacy use cases. Similarly, wxD delivers bindings for the D programming language, aiming to combine wxWidgets' GUI features with D's performance-oriented syntax and memory safety. It includes tools like wxc for C++ interfacing, but the last stable release (version 0.16) targets wxWidgets 2.9.2 from around 2010, rendering it archived and unsuitable for current development. wx.NET is a C# binding for .NET and Mono environments, providing a wrapper that parallels the for cross-platform development. However, it is outdated, with development stalling after version 0.9.2 around 2005, making it incompatible with modern wxWidgets releases and suitable only for legacy applications. These community bindings offer advantages by tailoring wxWidgets to language-specific paradigms, such as Perl's scripting efficiency or Haskell's declarative purity, potentially simplifying development in niche domains. Nonetheless, they face challenges including incomplete coverage compared to the native C++ implementation, requiring in languages without automatic garbage collection like Perl's layer, and inconsistent updates that may lag behind wxWidgets' evolution.

Notable Applications

Open-Source Applications

, a widely used open-source audio editor, has employed wxWidgets for its cross-platform graphical user interface since its initial release in 2000, allowing developers to maintain a single codebase that renders native controls on Windows, macOS, and . This integration has enabled features like multi-track editing and effects processing with consistent usability across platforms, contributing to 's popularity among podcasters, musicians, and educators. However, as of November 2025, the project's development branch for version 4.0 is undergoing a transition to the framework to enhance modern elements, such as better high-DPI scaling and support, while preserving for wxWidgets-based releases in the 3.x series. FileZilla, an FTP, , and client for secure file management, leverages wxWidgets with platform-specific backends like wxMSW on Windows and wxGTK on to deliver a native-looking for directory browsing and transfers. Since its in 2004, FileZilla's use of wxWidgets has facilitated its portability without compromising performance, supporting features such as site management and drag-and-drop operations in a lightweight footprint. The application remains actively maintained in 2025, incorporating updates from wxWidgets 3.2.x for improved dark mode compatibility and . Code::Blocks, a C/C++ and , is constructed entirely with wxWidgets, exemplifying the library's capacity for building sophisticated, extensible development tools. Its interface, including the management panel, views, and plugin architecture, utilizes wxWidgets' event-driven model to provide a responsive environment that feels native on each supported operating system. As of 2025, Code::Blocks continues to evolve with wxWidgets 3.3, enabling seamless integration of new compiler toolchains and enhanced plugin support for cross-platform development. KiCad, an open-source suite for , relies on wxWidgets to power its schematic editor, layout tools, and , fostering collaborative hardware projects in the maker and communities. By exploiting wxWidgets' drawing primitives and dialog systems, KiCad achieves precise control over complex visualizations like circuit traces and footprints, while ensuring compatibility across desktop environments. In 2025, KiCad's ongoing maintenance includes optimizations for wxWidgets 3.3, addressing rendering performance on high-resolution displays and compositors. These applications highlight wxWidgets' enduring role in open-source ecosystems, where continued adoption drives refinements such as advanced grid controls for tabular data handling—initially honed through and editor needs—and robust for global user bases. As of 2025, while select projects migrate to alternative toolkits for specialized requirements, the majority sustain active development with wxWidgets 3.3, benefiting from its stable and native integration for long-term reliability.

Commercial and Enterprise Software

wxWidgets has been employed in various applications, leveraging its permissive licensing to support closed-source without requiring the disclosure of application . The wxWidgets , a modified LGPL variant, permits the creation and distribution of proprietary binaries, making it suitable for commercial products where protection is paramount. This flexibility has enabled developers to build and sell software without royalty fees or mandatory open-sourcing of modifications to the library itself. A notable historical example is Amaya, the W3C's web editor developed for creating and editing web documents directly on the web, which integrated wxWidgets for its user interface starting from version 11 in 2009. Amaya utilized wxWidgets alongside for cross-platform rendering on , Windows, and macOS, providing a native look and feel while supporting standards like , , , and . Although discontinued in 2012, Amaya's use demonstrated wxWidgets' capability in influential, standards-focused tools within enterprises. In , wxWidgets powers tools for and eLearning. Kirix Strata, a commercial data browser for processing tabular data and generating reports from local files or databases, was built using wxWidgets to ensure cross-platform compatibility and efficient handling of large datasets without row or limitations typical of tools. Similarly, ActivePresenter, an AI-powered eLearning authoring tool for creating interactive training videos and simulations, incorporates wxWidgets for its core interface, supporting screen capture, , and export features across Windows and macOS. Overall, wxWidgets' appeal lies in its balance of native and permissive terms, fostering in sectors demanding secure, deployable software solutions, including by organizations such as , , and as of 2025.

Community and Ecosystem

Official Support and Resources

The official documentation for wxWidgets is hosted on the project's and includes comprehensive manuals, references, and tutorials for stable versions such as 3.2.8 and development versions like 3.3.0 and 3.3.1. These resources cover guides, class overviews, and practical examples, with the reference providing detailed function descriptions and code samples for cross-platform development. Tutorials range from basic "" applications to advanced topics like sizers for layout management and integrating with C++ IDEs. Downloads are available through the official website and the repository, offering source code archives, pre-built binaries for Windows (compatible with MSVC and compilers), and macOS packages in formats such as DMG files. The releases page hosts the latest stable and development builds, enabling users to obtain version-specific packages without compiling from source. Bug tracking is managed via the issues tracker, where developers report, discuss, and resolve defects, with active by core maintainers including Vadim Zeitlin. This system ensures timely responses to platform-specific issues and feature requests, supporting the library's ongoing maintenance across Windows, macOS, and systems. Community support is facilitated through the official wxWidgets discussion forum at forums.wxwidgets.org, which serves as the primary venue for Q&A, technical discussions, and user feedback. Archived mailing lists from earlier years are also accessible for historical reference, though the forum has become the central hub for current interactions. In 2025, wxWidgets saw significant updates, including the release of version 3.3.0 in June, which introduced dark mode support on Windows, a Chrome-based backend for wxWebView, and WebP image handling, alongside compatibility with the latest compilers. Version 3.3.1 followed in July, focusing on bug fixes while maintaining near-full backward compatibility with 3.2.x series applications. Additionally, example applications from the official wxWidgets book were made available on GitHub in March, providing over 25 demonstrable samples for UI, networking, and multithreading. The core development team consists of key contributors such as Vadim Zeitlin, Stefan Csomor, Paul Cornett, Robin Dunn, Václav Slavík, and Bryan Petty, with broader involvement from over 400 unique committers historically. This structure, led by original creator Julian Smart, ensures focused stewardship of the library's cross-platform features.

Third-Party Contributions and Extensions

The wxWidgets ecosystem benefits significantly from third-party contributions that extend its functionality, providing specialized and libraries developed by the . These additions often integrate external open-source components, enhancing capabilities in areas such as text editing, data visualization, and rendering without altering the main . Notable examples include libraries that leverage established third-party engines for robust feature sets. One prominent widget library is wxStyledTextCtrl, a syntax-highlighting control that serves as a direct wrapper around the Scintilla editing component, enabling advanced features like , auto-completion, and multi-language support in wxWidgets applications. Another key library is wxChartCtrl, part of the contrib modules, which facilitates the creation of various chart types such as , line, and graphs directly within wxWidgets interfaces, though it has seen limited maintenance in recent years. These libraries are typically hosted in the wxWidgets contrib folder or community repositories, allowing developers to build upon them for custom elements. Extensions further broaden wxWidgets' scope by incorporating third-party rendering engines and security features. For instance, wxWebView provides HTML rendering capabilities through backends like (WebView2) on Windows or Chromium-based engines on other platforms, enabling embedded web content with modern and CSS support. In the realm of , the wxSQLite3 extension wraps the database library and includes an integrated module using the SQLCipher-based SEE (SQLite Encryption Extension), allowing secure data storage in wxWidgets-based applications with AES-256 support. Such extensions are distributed via dedicated repositories and must comply with wxWidgets' licensing for integration. Community-driven projects thrive through the wxWidgets GitHub repository's contrib modules, which include enhancements like advanced controls for complex data tables and rendering controls built on wrappers. These modules, often submitted as pull requests, undergo a structured governance process: contributors fork the repository, implement changes in a feature branch, and submit a pull request for review, where maintainers evaluate code quality, cross-platform compatibility, and adherence to inclusion criteria such as documentation and testing. This process ensures that high-quality contributions, like those improving sorting or widget interactions, are merged into the official contrib space. These contributions play a crucial role in filling functional voids in the core library, exemplified by third-party efforts for improved SVG support through libraries like wxSVG, which enable vector graphic rendering and manipulation using the wxWidgets drawing context. By providing scalable, cross-platform solutions for graphics and data handling, such extensions enhance wxWidgets' versatility for diverse applications, from scientific tools to .

References

  1. [1]
    wxWidgets: Cross-Platform GUI Library
    wxWidgets is a C++ library that lets developers create applications for Windows, macOS, Linux and other platforms with a single code base.DownloadsTutorialsDocumentationOverviewScreenshots
  2. [2]
    Overview - wxWidgets
    wxWidgets was started in 1992 by Julian Smart at the University of Edinburgh. Initially started as a project for creating applications that were portable across ...
  3. [3]
    History - wxWidgets
    wxWidgets was started in 1992 at the Artificial Intelligence Applications Institute, University of Edinburgh, by Julian Smart. Julian was designing a kind of ...
  4. [4]
    wxWidgets/wxWidgets: Cross-Platform C++ GUI Library - GitHub
    wxWidgets is a free and open source cross-platform C++ framework for writing advanced GUI applications using native controls. wxWidgets Logo.
  5. [5]
    General FAQ - wxWidgets
    wxWidgets philosophy is to make wxWidgets as platform-independent as possible, but allow in a few classes (functions, window styles) that are platform-specific.
  6. [6]
    Goals of wxWidgets
    Dec 22, 2006 · So it's true that this long history resulted in some problems and we had to change quite a few things to fix them – even the original name ...
  7. [7]
    Licence - wxWidgets
    The wxWindows Library License establishes the copyright for the code and related material, and it gives you legal permission to copy, distribute and/or modify ...
  8. [8]
    wxWidgets Roadmap
    The latest stable release is 3.2.8.1, released on 2025-05-25. This is the ninth release in the 3.2 branch, started with 3.2.0 on 2022-07- ...
  9. [9]
    Downloads - wxWidgets
    Development Release: 3.3.1. Released: July 21, 2025. Source Code. Windows ZIP · Windows 7z · Windows Installer (does not contain binaries)
  10. [10]
    Overview of Available Classes | wxWidgets
    wxWidgets provides a set of classes to display text in HTML format. These classes include a help system based on the HTML widget.
  11. [11]
    Beech:Using events - wxWidget's Wiki
    Oct 19, 2018 · It's called the "event table" and it simplifies the business of programming for events. The wxWidgets Event Table. BEGIN_EVENT_TABLE (BasicFrame ...
  12. [12]
    Writing Non-English Applications | wxWidgets
    This article describes how to write applications that communicate with the user in a language other than English. Unfortunately many languages use different ...Missing: tools | Show results with:tools
  13. [13]
    wxWidgets 3.2.0 Released
    Jul 7, 2022 · wxWidgets 3.2.0 includes new build system, dark mode on macOS, new features like HTTPS, and is mostly compatible with 3.0.
  14. [14]
    wxWidgets 3.3.0 Released
    Jun 6, 2025 · The long awaited support for dark mode for Windows is finally here. wxWebView has gained a new Chrome-based backend and many other more ...
  15. [15]
    wxAccessible Class Reference | wxWidgets
    The wxAccessible class allows wxWidgets applications, and wxWidgets itself, to return extended information about user interface elements to client ...
  16. [16]
    WxWidgets Compared To Other Toolkits - WxWiki
    Oct 19, 2018 · wxWidgets not only works for C++, but also has bindings for python, perl, php, java, lua, lisp, erlang, eiffel, C# (.NET), BASIC, ruby and even ...
  17. [17]
  18. [18]
    News Archive - wxWidgets
    The new version includes improvements such as GUI state storage to file, a new property editor and layout capabilities and more. The sample can be used to ...
  19. [19]
    wxWidgets 2.8.0 released - wxWidgets Discussion Forum
    major new release of the mature cross-platform C++ application framework. The following platforms are supported: - Windows 95/98/ME, NT, 2000, ...
  20. [20]
    wxWidgets 3.0.0 Released
    Nov 11, 2013 · The final version of wxWidgets 3.0, the first new stable wxWidgets release in years and the first new major release since 1998, is now available.Missing: announcement | Show results with:announcement
  21. [21]
    CMake Overview | wxWidgets
    CMake allows building wxWidgets on various platforms with your preferred build system. Most linux distributions contain CMake as a package on Windows and ...
  22. [22]
    wxWidgets for Qt installation
    GUI libraries. wxWidgets/Qt requires the Qt library to be installed on your system. It has to be a stable version, preferably Qt 5.2.1 or ...The Simplest Case · The Simplest Program · Create Your ConfigurationMissing: backend | Show results with:backend
  23. [23]
    Copyrights and Licenses | wxWidgets
    Note that we use the old name wxWindows in the licence, pending recognition of the new name by OSI. wxWindows Library Licence · GNU Library General Public ...Missing: history | Show results with:history
  24. [24]
    Name Change - wxWidgets
    Julian Smart and Robin Dunn will cease using the name wxWindows by August 2004. · Microsoft will redirect to our new domain wxwidgets.org for at least a year ...Missing: history | Show results with:history
  25. [25]
    License - WxWiki - wxWidget's Wiki
    Oct 19, 2018 · wxWidgets is currently licensed under the "wxWindows Licence" pending approval of the "wxWidgets Licence" which will be identical apart from ...
  26. [26]
  27. [27]
    Licensing/wxWindows.html - Fedora Project Wiki
    The wxWindows Library Licence is essentially the LGPL (Library General Public Licence), with an exception stating that derived works in binary form may be ...
  28. [28]
    wxWidgets 3.3.1 Released
    Jul 21, 2025 · There were also a number of fixes to the new Windows dark mode support: Fix crash with wxStaticBitmap inside wxNotebook in dark mode (#25499).
  29. [29]
    Static linking - WxWiki - wxWidget's Wiki
    Feb 5, 2016 · You can statically link to the wxWidgets libraries in your own project and the exe will work on other PCs without having to install the MSVC redistributable ...
  30. [30]
    wxIcon Class Reference - wxWidgets Online Manuals
    A macro, wxICON, is available which creates an icon using an XPM on the appropriate platform, or an icon resource on Windows. wxIcon icon(wxICON(sample));.Missing: manifests | Show results with:manifests
  31. [31]
    Distributing WxWidgets Applications - WxWiki
    Oct 24, 2015 · Compile wxwidgets and your application following the guidelines: Microsoft Visual C++ Guide. The program will run on your development computer.Missing: wxWindows | Show results with:wxWindows
  32. [32]
    Changes Since wxWidgets 2.8
    This topic describes backwards-incompatible changes in wxWidgets 3.0 compared to the last stable release and is very important to read if you are updating ...Missing: history | Show results with:history
  33. [33]
    Technical Note TN2206: macOS Code Signing In Depth
    Sep 13, 2016 · The purpose of this technote is to provide a more in depth view of code signing. It is intended to expand upon the information given in the Code Signing Guide.<|control11|><|separator|>
  34. [34]
    Reducing Executable Size - WxWiki - wxWidget's Wiki
    Oct 19, 2018 · By aggressively stripping options from setup.h it is possible to reduce the size of the library to about 400k, and still have a fairly functional library.Missing: unused | Show results with:unused
  35. [35]
    wxObject Class Reference | wxWidgets
    wxObject is the root class of many wxWidgets classes, used for dynamic object creation and can be used to implement reference counted objects.
  36. [36]
    wxWindow Class Reference - wxWidgets Online Manuals
    wxWindow is the base class for all windows and represents any visible object on screen. All controls, top level windows and so on are windows.
  37. [37]
    wxFrame Class Reference - wxWidgets Online Manuals
    A wxFrame is a window, usually with borders and a title bar, that can be resized by the user and can contain a menu, toolbar, and status bar.
  38. [38]
    wxDialog Class Reference | wxWidgets
    A wxDialog is a window with a title bar, used to allow users to make choices or answer questions. It can be modal or modeless.
  39. [39]
    wxApp Class Reference | wxWidgets
    The wxApp class represents the application itself when wxUSE_GUI=1 . In addition to the features provided by wxAppConsole it keeps track of the top window ...
  40. [40]
    XML Based Resource System (XRC) | wxWidgets
    The XML-based resource system, known as XRC, allows user interface elements such as dialogs, menu bars and toolbars, to be stored in text files and loaded ...Missing: driven | Show results with:driven
  41. [41]
    wxXmlResourceHandler Class Reference | wxWidgets
    wxXmlResourceHandler is an abstract base class for resource handlers capable of creating a control from an XML node. ... See XML Based Resource System (XRC) for ...Missing: management | Show results with:management
  42. [42]
    Multithreading Overview | wxWidgets
    wxWidgets provides a complete set of classes encapsulating objects necessary in multi-threaded (MT) applications: the wxThread class itself and different ...
  43. [43]
    wxThread Class Reference - wxWidgets Online Manuals
    There are two types of threads in wxWidgets: detached and joinable, modeled after the POSIX thread API. This is different from the Win32 API where all threads ...Public Member Functions · Static Public Member Functions
  44. [44]
    wxCriticalSection Class Reference | wxWidgets
    Enter the critical section (same as locking a mutex): if another thread has already entered it, this call will block until the other thread calls Leave(). More.
  45. [45]
    wxCondition Class Reference | wxWidgets
    They may be used in a multithreaded application to wait until the given condition becomes true which happens when the condition becomes signaled. Note: Prefer ...
  46. [46]
    wxConfig Overview | wxWidgets
    The config classes provide a way to store some application configuration information. They were especially designed for this usage and, although may probably be ...
  47. [47]
    wxConfigBase Class Reference | wxWidgets
    wxConfigBase defines the basic interface of all config classes. It cannot be used by itself (it is an abstract base class) and you will always use one of its ...
  48. [48]
    wxConfigPathChanger Class Reference | wxWidgets
    A handy little class which changes the current path in a wxConfig object and restores it in dtor. Declaring a local variable of this type, it's possible to ...
  49. [49]
    wxLog Class Reference - wxWidgets Online Manuals
    The wxLog class defines the interface for log targets used by wxWidgets logging functions. It is used when deriving custom log targets.
  50. [50]
    wxWidgets: Debugging macros
    Assert macro with message. An error message will be generated if the condition is false. This macro should be used to catch (in debug builds) logical errors ...
  51. [51]
    Logging | wxWidgets
    The functions to use for error messages, i.e.. the messages that must be shown to the user. The default processing is to pop up a message box to inform the user ...
  52. [52]
    wxLogChain Class Reference | wxWidgets
    This simple class allows you to chain log sinks, that is to install a new sink but keep passing log messages to the old one instead of replacing it ...
  53. [53]
    None
    Nothing is retrieved...<|separator|>
  54. [54]
    Sizers Overview | wxWidgets
    Sizers, as represented by the wxSizer class and its descendants in the wxWidgets class hierarchy, have become the method of choice to define the layout of ...
  55. [55]
    None
    Nothing is retrieved...<|separator|>
  56. [56]
    Creating a Custom Widget - wxWidgets Online Manuals
    Custom widgets can be created by deriving from wxWidgets classes for a generic look, or by using native toolkits for a native look, which requires more work.<|separator|>
  57. [57]
    None
    Nothing is retrieved...<|separator|>
  58. [58]
    Accessibility in wxWidgets
    An interesting potential additional benefit of providing accessibility support is the ability to use the API for automation of wxWidgets applications. I am ...
  59. [59]
    Introduction - wxWidgets Online Manuals
    wxWidgets is an open source C++ framework allowing to write cross-platform GUI applications with native look and feel in C++ and other languages. wxWidgets was ...
  60. [60]
    readme.txt - wxWidgets
    And, finally, this release also contains a small number of new features: - Allow setting "app id" under supported platforms (Windows/Wayland) (#25548). - Add ...
  61. [61]
    wxSystemOptions Class Reference | wxWidgets
    Some native win32 dialogs (like the font and colour pickers) are not per-monitor DPI aware, and wxWidgets will forcefully show them as system DPI aware when ...
  62. [62]
    Draw a big amount of item - wxWidgets Discussion Forum
    May 1, 2017 · OTOH under Windows you can use the Direct2D renderer which is hardware-accelerated and could give a nice performance boost. You'd have to ...
  63. [63]
    wxWidgets 3.2.2 Released
    Feb 8, 2023 · Latest release in the stable 3.2 series is now available on GitHub. You will find there archives with the library sources and documentation as well as binaries.
  64. [64]
    wxWidgets 3.1.4 Released
    Jul 22, 2020 · wxOSX port now supports the latest macOS 11 on ARM hardware. wxMSW comes with a new Edge-based wxWebView implementation. Better, although still ...
  65. [65]
    Samples Overview - wxWidgets Online Manuals
    Widget shows how you can embed ordinary controls or windows within an HTML page. It also nicely explains how to write new tag handlers and extend the ...
  66. [66]
    WxQt - WxWiki
    Jul 6, 2022 · Currently, wxQT needs Qt 5 or later (recommended version is Qt 5.2.1). Other dependencies are needed depending on the features to be used.Getting started · Building the Library · Port status
  67. [67]
    Semi-support Qt6 for wxQt port. (PR #24345) - Google Groups
    Feb 21, 2024 · Gets wxQt with Qt6 building with CMake, and samples (widgets, cube, pyramid) running. Sort of implements #24208. glib-2.0 is needed to work around removal ...What is the real status of WxQt? (Issue #24181) - Google Groupswxwidgets for mobile platform - Google GroupsMore results from groups.google.com
  68. [68]
    Using WxWidgets Qt backend? #877 - audacity audacity - GitHub
    WxWidgets Qt backend is still work-in-progress yes, but on the other hand Audacity does not need the entire thing. Fixing WxWidgets Qt side (and then submitting ...Missing: 3.3 | Show results with:3.3
  69. [69]
    WxAndroid/docs - WxWiki - wxWidget's Wiki
    Jul 6, 2022 · Android port of wxWidgets contains both CPP and Java files. Files are located in src/android/jni for CPP and src/android/java for java.Missing: wxWebView | Show results with:wxWebView
  70. [70]
    Building wxWidgets for iOS
    wxiOS is far from a full supported port, but can be used as base for simple applications and future improvements. It requires Xcode with iOS SDK 9.0 or ...
  71. [71]
    wxHaiku download | SourceForge.net
    Sep 21, 2016 · Download wxHaiku for free. wxWidgets port to Haiku. This is a port of the wxWidgets cross-platform GUI (http://www.wxwidgets.org) to Haiku ...
  72. [72]
    wxWidgets | eCSoft/2
    An open source C++ GUI framework for easy cross-platform programming. This software is distributed as compressed package. You have to download and manually ...<|separator|>
  73. [73]
    Dropping Carbon support under OS X - wxWidgets
    We would like to remove the old Mac OS X port using Carbon in the upcoming 3.1.0 release because we think nobody should be using it any longer ( ...Missing: classic | Show results with:classic
  74. [74]
    ahilss/wxWidgets-wasm: Read-only mirror of the wxWidgets ... - GitHub
    wxWidgets-wasm is a WebAssembly port of wxWidgets. wxWidgets is a free and open source cross-platform C++ framework for writing advanced GUI applications ...
  75. [75]
    How to Build wxWidgets for Raspberry Pi
    Oct 3, 2015 · I believe, wxWidgets application will run very well in Raspberry Pi since it yields small and portable application. Any one have an idea to ...Missing: challenges | Show results with:challenges
  76. [76]
    wxWidgets, mobile platforms - wxWidgets Discussion Forum
    Dec 29, 2021 · I don't think the Android and IOS ports of wxWidgets are ready for production use (probably far from it). This leaves only wxQt, but this ...
  77. [77]
    How to use wxMSW binaries
    First, you need to get the correct files. You will always need the wxWidgets-3.2.8-headers.7z one but the rest depends on your compiler version and architecture ...Missing: history | Show results with:history
  78. [78]
    Supported Platforms - WxWiki
    Platforms supported by wxMSW. The programs using wxMSW run on any of the desktop 32-bit Windows version, including Windows 95 (and Windows 98/ME/NT4/2000/XP ...
  79. [79]
    Has anyone successfully built wxWidgets with intel compiler?
    Apr 19, 2007 · AFAIK, Intel compiler for Windows emulates VC behaviour. If you want to compile wxWidgets with Intel compiler on Windows then use VC make file.
  80. [80]
    wxWidgets-3.1.5 and Embarcadero DevC++ 6.3
    Feb 8, 2022 · I have been trying to install wxWidgets-3.1.5 library to use with the Embarcadero DevC++ 6.3 Compiler and getting absolutely nowhere!
  81. [81]
    Build for Windows ARM - wxWidgets Discussion Forum
    Mar 16, 2024 · The ARM build for Windows was very recently fixed and it will be available in the next stable release and the next official release of the library.
  82. [82]
    None
    Nothing is retrieved...<|separator|>
  83. [83]
    wxWidgets 3.2.8 Released
    Apr 24, 2025 · wxWidgets 3.2.8 Released. Posted on April 24, 2025. 3.2.8 is the latest maintenance release in the stable 3.2 series and is now available on ...
  84. [84]
    Installing wxWidgets
    The first step when starting to use wxWidgets is to install it. This can be done, for all platforms and library versions, by building wxWidgets from sources.
  85. [85]
    wxWidgets Dialog Designer download | SourceForge.net
    Rating 5.0 (22) · FreewxDev-C++ is an opensource wxWidgets Dialog designer that mimics the Delphi/Borland C++ Builder designer.
  86. [86]
    wxFormBuilder/wxFormBuilder: A wxWidgets GUI Builder - GitHub
    wxFormBuilder is a GUI builder for the wxWidgets framework. Code generation is supported for C++, Python, Lua and PHP.Missing: drag- drop
  87. [87]
    DialogBlocks dialog editor for wxWidgets - Anthemion Software Ltd.
    DialogBlocks is a sizer-based resource editor for creating wxWidgets GUIs, dialogs, wizards, and frames for Windows, Linux, Mac, and other platforms.Missing: commercial | Show results with:commercial
  88. [88]
    Eclipse - WxWiki - wxWidget's Wiki
    Nov 27, 2012 · Eclipse is an open IDE. To use with wxWidgets, install C++ support (CDT) via "Help->Software Updates->Find and Install" and add C++ project ...Using Eclipse with pre-built... · Installing manually · Installing on *Ubuntu · Linux
  89. [89]
    Overview of wxPython
    - **Relation to wxWidgets**: wxPython is a set of Python extension modules wrapping the wxWidgets C++ cross-platform GUI library.
  90. [90]
    wxPython Changelog
    This build of wxPython is based on the official wxWidgets 3.0.3 release. This release is mostly various bug fixes and other tweaks, such as: Allow numpy ...<|control11|><|separator|>
  91. [91]
  92. [92]
    wx.Window — wxPython Phoenix 4.2.3 documentation
    wx.Window is the base class for all windows and represents any visible object on screen. All controls, top level windows and so on are windows.Wx.Window¶ · Window Styles¶ · Methods Summary¶
  93. [93]
  94. [94]
    Possible to embed a wxPython widget within a wxWidgets application?
    Jul 27, 2023 · I understand that in order for wxPython Project Phoenix to wrap wxWidgets, it utilizes python bindings generated with SIP. That is where I ...
  95. [95]
    wxRuby3 1.0.0 released - wxWidgets
    May 18, 2024 · wxRuby3 is a cross-platform GUI library for Ruby, based on the mature wxWidgets GUI toolkit for C++. It uses native widgets wherever possible.
  96. [96]
    mcorino/wxRuby3: Ruby Cross-Platform GUI extension - GitHub
    wxRuby3 is a cross-platform GUI library for Ruby, based on the mature wxWidgets GUI toolkit for C++. It uses native widgets wherever possible.
  97. [97]
  98. [98]
    Bindings - WxWiki - wxWidget's Wiki
    Nov 28, 2013 · wxWidgets is available through bindings to a host of different languages. wxAda · wxBasic; C++ (native); wxD · wxDelphi/wxPascal · wxErlang ...
  99. [99]
    Announcing wxPerl 3.009 - wxWidgets Discussion Forum
    Oct 18, 2025 · wxPerl version 3.009 has been released and is available on GitHub. This version fixes some compile/build bugs with wxWidgets 3.3.1 and/or ...
  100. [100]
    wxlua: Lua bindings for wxWidgets cross-platform GUI toolkit - GitHub
    wxLua is a Lua wrapper for the cross-platform wxWidgets GUI library. It allows developers to create applications for Windows, macOS, and Linux using Lua.
  101. [101]
    How do I include wxLua in my project? - wxWidgets Discussion Forum
    Aug 8, 2025 · I am new to wxLua and relatively new to Lua itself (but have light experience with C and C++) and am having some trouble trying to use the wxLua ...wxGraphicsContext hanging the process - The wxWidgets forumRelevance of wxWidgets - wxWidgets Discussion ForumMore results from forums.wxwidgets.orgMissing: binding | Show results with:binding
  102. [102]
    wxD is wxWidgets bindings for the D programming language. - GitHub
    wxD is wxWidgets bindings for the D programming language. wxWidgets is a cross-platform GUI toolkit, which supports Windows, Mac OS X, *nix-like OSs.
  103. [103]
    Effects menu scrolling - Maintaining / Improving this Forum
    Jan 12, 2024 · The developers intend to switch from WxWidgets to Qt (another GUI toolkit). Issues relating to the GUI that are reported on Audacity's GitHub ...
  104. [104]
    FEEDBACK: Dark Mode please - FileZilla Forums
    May 12, 2025 · Once dark mode support is in the stable wxWidgets branch, reliable enough, and FileZilla is compiled with that component version, dark mode ...
  105. [105]
    Using wxWidgets with MinGW and Code::Blocks
    May 14, 2022 · Using prebuilt MSYS2 wxWidgets with Code::Blocks may not work due to different library names. Building wxWidgets is easy, and a separate build ...
  106. [106]
    Code::Blocks and wxWidgets 3.2.5...
    May 30, 2024 · The nightly builds of Code::Blocks ship with a wizard supporting wxWidgets 3.2. My guide uses multilib build by default (as monolithic build is ...missing wx/setup.h - Code::Blocks ForumsUpdating wxWidgets project wizard - Code::Blocks ForumsMore results from forums.codeblocks.org
  107. [107]
    Getting Started - Developer Documentation | KiCad
    wxWidgets is the graphical user interface (GUI) library used by KiCad. As of version 7.0, KiCad is developed and tested against wxWidgets 3.2. The KiCad team ...
  108. [108]
    wxWidgets 3.3.0 - Software - KiCad.info Forums
    Jun 9, 2025 · wxWidgets 3.3.0 is a free, open-source, cross-platform C++ framework for GUI applications, allowing native-looking apps and is a development ...
  109. [109]
    Project List - WxWiki
    Feb 3, 2017 · This is an incomplete list of Open Source projects which use wxWidgets. These are possible code bases to mine for samples of using wxWidgets.
  110. [110]
    Amaya WX README - W3C
    Oct 9, 2009 · The last version of Amaya user interface uses OpenGL (native or Mesa) canvas, wxWidgets toolkit, GTK+2.0 on Linux, Win32 on Windows and Cocoa on Mac OS X.
  111. [111]
    Screenshots - wxWidgets
    KiCad is an open source (GPL) application for designing electronic schematic diagrams and printed circuit board artwork. Available for Windows, Linux, and ...
  112. [112]
    ActivePresenter EULA - Atomi Systems, Inc.
    The Open Source Software may include but not limited to: Portions of the SOFTWARE (wxWidgets, wxJSON, wxSQLite, wxPdfDocument, wxSVG) copyright (c) Julian Smart ...
  113. [113]
    Senior C++ Developer – Trading Infrastructure & Low-Latency ...
    Design, develop, and optimize low-latency trading systems in a Windows environment using C++/C, STL, MFC, Wx Widgets, Win32. Collaborate closely within trading ...
  114. [114]
    Commercial software - wxWidgets Discussion Forum
    Dec 7, 2007 · Yes, you can develop commercial software with wxWidgets. No, there are no license or royalty fees to pay. Yes, you can create your own license ...
  115. [115]
    Documentation - wxWidgets Online Manuals
    If you are already familiar with wxWidgets and are upgrading from an older release, please read about the changes in the latest version compared to 2.8 series.<|control11|><|separator|>
  116. [116]
    Tutorials - wxWidgets
    Adding wxWidgets Class Documentation. This note is aimed at people wishing to add documentation for a class to the official wxWidgets manual. wxWidgets and ...
  117. [117]
  118. [118]
    wxWidgets Discussion Forum - Index page
    wxWidgets Discussion Forum. Official forum for the wxWidgets Cross-Platform GUI Toolkit. Skip to content. Quick links.Missing: discourse | Show results with:discourse
  119. [119]
    wxWidgets Book Examples Now Available on GitHub
    Mar 5, 2025 · The repository contains over 25 wxWidgets examples, including UI, file handling, networking, multithreading, OpenGL, and a custom code editor.Missing: demos | Show results with:demos<|separator|>
  120. [120]
    The Team - wxWidgets
    Dr. Robert Roebling - Robert Roebling has written the initial GTK port and has overseen its development since then.
  121. [121]
    Moderated list of useful wxWidgets extensions
    Oct 16, 2021 · This list includes high-quality, actively maintained wxWidgets extensions like wxSQLite3, wxPdfDocument, wxChartDir, and Wisteria Dataviz.
  122. [122]
    wxStyledTextCtrl Class Reference | wxWidgets
    wxStyledTextCtrl is a 1 to 1 mapping of "raw" scintilla interface, whose documentation can be found in the Scintilla website.
  123. [123]
    wxChartCtrl undefined reference - wxWidgets Discussion Forum
    Dec 24, 2012 · ive got a problem using wxChartCtrls. my codeblocks (v12.11) is nearly untouched, but everytime i tried to use a wxChartCtrl in a dialog, the ...
  124. [124]
    senadj/wxfolder: wxWidgets contrib modules and other files - GitHub
    wxWidgets contrib modules, new classes, apps and other files. Intended primary use with tdm-gcc compiler and C++11 standard. Most wxWidgets contrib module files ...
  125. [125]
    wxWebView Class Reference | wxWidgets
    It differs from wxHtmlWindow in that each backend is actually a full rendering engine, Internet Explorer or Edge on MSW and WebKit on macOS and GTK. This allows ...
  126. [126]
    wxSQLite3 - SQLite3 database wrapper for wxWidgets ... - GitHub
    wxSQLite3 is a C++ wrapper around the public domain SQLite 3.x database and is specifically designed for use in programs based on the wxWidgets library.
  127. [127]
    wxSQLite3 - Ulrich Telle
    wxSQLite3 is a C++ wrapper around the public domain SQLite 3.x database and is specifically designed for use in programs based on the wxWidgets library.
  128. [128]
    How to Submit Patches - wxWidgets
    If possible, i.e if you already use GitHub, please submit your patches via GitHub pull requests (PR) mechanism, i.e. fork wxWidgets repository, make a branch ...Missing: process | Show results with:process
  129. [129]
    Pull requests · wxWidgets/wxWidgets - GitHub
    Cross-Platform C++ GUI Library. Contribute to wxWidgets/wxWidgets development by creating an account on GitHub.Missing: process | Show results with:process
  130. [130]
    Student Project Ideas - wxWidgets
    If you are interested in participating in the Google Summer of Code program with wxWidgets, we have prepared a list of some potential projects you could work ...Native Svg Rendering For... · Make Wxwebview More... · Wxwebview Cookies And...
  131. [131]
    Google Summer of Code - wxWidgets
    Google Summer of Code (GSoC), is an amazing program organized by Google which offers students stipends for working on open source projects.
  132. [132]
    wxSVG
    wxSVG is C++ library to create, manipulate and render Scalable Vector Graphics (SVG) files with the wxWidgets toolkit.Missing: contributions | Show results with:contributions
  133. [133]
    Add an option for a different SVG rendering engine #24216 - GitHub
    Jan 14, 2024 · While nanosvg has the advantage of being easy to build as part of wxWidgets, it has the disadvantage of not correctly displaying a variety of different types ...