wxWidgets: Cross-Platform GUI Library
- ️wxWidgets Team
- ️Mon Sep 09 2024
wxWidgets is a C++ library that lets developers create applications for Windows, macOS, Linux and other platforms with a single code base. It has popular language bindings for Python, Ruby, Lua, Perl and several other languages, and unlike other cross-platform toolkits, wxWidgets gives applications a truly native look and feel because it uses the platform's native API rather than emulating the GUI. It's also extensive, free, open-source and mature.
Latest News
wxWidgets 3.2.6 Released
Posted on September 09, 2024
This is the latest maintenance release in the stable 3.2 series and is now available on GitHub, from where you can download archives with the library sources and documentation as well as binaries for the selected Windows compilers such as Microsoft Visual C++, MinGW-w64 and TDM-GCC. You can also read the updated documentation for this version online and, in particular, if you’re new to wxWidgets, you may find the installation guide a good starting point.
Changes since 3.2.5
This release contains relatively few changes compared to the previous one, but they include important bug fixes, such as:
- Fix resource leak in
wxBitmapBundle
in some circumstances (#24703). - Fix crash when using static wx libraries in a Windows DLL (#24730).
- Fix possible crash during drag-and-drop in wxGTK (#24677).
- Fix
wxDatePickerCtrl
being unusable in some locales in wxGTK (#24533). - Fix regression in focus handling under macOS 14+ (#24605, #24667).
- Fix regression in wxTranslations introduced in 3.2.3 (#24297).
Other changes include:
- High DPI fixes for
wxBitmapComboBox
(#24563),wxDataViewCtrl
(#24648),wxNotebook
([#24606]),wxPropertyGrid
(#24607),wxWizard
(#24743). - Improve
wxSlider
appearance under macOS (#24532, #24539). - Correctly use current keyboard layout in key events in wxGTK (#24772).
- Fix handling of ligatures in
wxStyledTextCtrl
in wxGTK (#13168).
Please see the full change log for more details.
This release is API and ABI-compatible with the previous 3.2.x releases, so the existing applications don’t even need to be rebuilt to profit from all the fixes above if they use shared/dynamic libraries. And if they do need to be recompiled, this can be done without any changes to the code.
Feedback
Please let us know about your experience with this release via any of the following channels:
or by commenting under this post.
Thanks to all contributors to this release and we hope that you will enjoy working with it!
wxRuby3 1.0.0 released
Posted on May 18, 2024
It’s time! wxRuby3 has reached its 1.0.0 stable release.
This release targets the wxWidgets 3.2.5 release by default, which contains (among many others) quite some fixes which came from the development of wxRuby3, and can be installed from RubyGems or downloaded from Github.
This release is the result of about 1.5 years of development, starting at the abandoned remains of wxRuby2, taking a page out of the wxPython Phoenix book and ending with this release.
wxRuby3 is a cross-platform GUI library for Ruby, based on the mature wxWidgets GUI toolkit for C++. It uses native widgets wherever possible, providing the correct look, feel and behavior to GUI applications on Windows, macOS and Linux/GTK. wxRuby aims to provide a comprehensive solution to developing professional-standard desktop applications in Ruby. wxRuby3 also provides extensive usage documentation at its Wiki as well as a complete API reference.
What has changed in this release?
- improved documentation
- support building against wxWidgets GIT master version
- improved stability
- add Wx::Overlay and Wx::DCOverlay
- add 2D affine transformation support
- add Wx::GraphicsRenderer
- various DC support improvements
- add large 2D drawing sample
Full Changelog: https://github.com/mcorino/wxRuby3/compare/v0.9.8…v1.0.0
How to install?
See the INSTALL documentation for more details. Binary packages for major platforms are available as release assets on Github.
Where can I learn more?
Usage Documentation: see the Wiki
API Documentation: see here
Source code: Github
Rubygems: wxRuby3
Where can I provide feedback?
Report problems, bugs, instructions using Github Issues.
Start discussions, submit ideas, feature requests etc. using Github Discussion.
Credits
Thanks go to the dedicated wxWidgets team for providing such a fantastic GUI library to build wxRuby3 on as well as to the wxPython Phoenix team for providing the idea of code generation from the wxWidgets interface docs.
For more credits see here.
wxWidgets 3.2.5 Released
Posted on May 13, 2024
The latest release in stable 3.2 series is now available on GitHub and you can download archives with the library sources and documentation as well as binaries for the selected Windows compilers such as Microsoft Visual C++, MinGW-w64 and TDM-GCC from there. You can also read the updated documentation for this version online and, in particular, if you’re new to wxWidgets, you may find the installation guide a good starting point.
Changes since 3.2.4
This release contains more than a hundred fixes and improvements for all platforms. Some of the most important ones are:
- Support macOS 14 Sonoma (#23916, #24054, #24067, #24073, #24515) and fix installation on some Apple Silicon Macs (#23143).
- Wayland-related fixes in wxGTK: clipboard (#24391), OpenGL (#24076, #24395) and other (#24021, #24050, #24051).
- Fix crash when using
wxApp
in console wxGTK programs (#24081). - Support for dates after 2038 in
wxDateTime
(#24464).
Other changes include:
- Fix support for using Chinese (zh-Hans-CN) locale under macOS (#24396).
- Fix alpha channel in bitmaps loaded from SVG in wxGTK (#24064).
wxGenericListCtrl
improvements (#24292, #24293, #24311, #24312, #24332).wxGrid improvements
(#24247, #24286).- More high DPI fixes in wxMSW (#24283, #24196, #24456).
- Avoid new gcc 14 warnings in the headers (#24502).
Please see the full change log for more details.
This release is API and ABI-compatible with the previous 3.2.x releases, so the existing applications don’t even need to be rebuilt to profit from all the fixes above if they use shared/dynamic libraries. And if they do need to be recompiled, this can be done without any changes to the code.
Feedback
Please let us know about your experience with this release via any of the following channels:
or by commenting under this post.
Thanks to all contributors to this release and we hope that you will enjoy working with it!
Modern Icon Sets wxArtProvider Released
Posted on November 21, 2023
perazz has released wxMaterialDesignArtProvider, a custom wxArtProvider
class providing SVG-based icons from the Material Design, SimpleIcons, FontAwesome and FluentUI system datasets. All these datasets come with permissive licenses (MIT, CC BY 4.0, CC0 1.0, Apache 2.0) that should make it easy to embed it in new and existing projects.
All SVG icons are hardcoded into headers such that no external files are needed to build the art provider class. Each dataset belongs to a custom client (so that filled/outline versions can be used for hovering effects) and color customization is provided via a simple regex-based extension.
Hopefully this can be useful to people who want to make their existing wxWidgets applications access modern icon sets with limited effort.
wxWidgets 3.2.4 Released
Posted on November 11, 2023
Yet another 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 for the selected Windows compilers such as Microsoft Visual C++, MinGW-w64 and TDM-GCC. You can also read the updated documentation for this version and, in particular, if you’re new to wxWidgets, you may find the installation guide a good starting point.
Changes since 3.2.3
This release comes very soon after 3.2.3 because some of the changes in the last release resulted in regressions fixed by this release. Notably, 3.2.4 fixes a critical bug which made applications using wxGTK but not initializing the GUI to crash (see issue #23981).
Other bug fixes include:
- Fix regression in
wxTranslations::AddCatalog()
return value (#24019). - Fix possible crash and too high CPU use when using EGL (#24018).
- Fix losing clipboard contents when clearing a different selection (#23988).
- Fix possible crash when dragging pages in
wxAuiNotebook
(#24027). - Fix refreshing multiple selection items in generic
wxListCtrl
. - Fix showing windows for background apps under macOS Sonoma (#23893).
The only new addition in this release is the possibility to create objects
of wx legacy “dynamic arrays” class from std::initializer_list<>
(#23966).
Please see the full change log for more details.
This release is API and ABI-compatible with the previous 3.2.x releases, so the existing applications don’t even need to be rebuilt to profit from all the fixes above if they use shared/dynamic libraries. And if they do need to be recompiled, this can be done without any changes to the code.
Feedback
Please let us know about your experience with this release via any of the following channels:
or by commenting under this post.
Thanks to all contributors to this release and we hope that you will enjoy working with it!