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
Modern Icon Sets wxArtProvider Released
Posted on
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
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!
MFC Porting Guide
Posted on
Utah C++ Programmers group has released a new video about porting from MFC to wxWidgets accompanied by a gist with a step-by-step guide.
Hopefully this can be useful to people who want to make their existing MFC applications portable or just to switch to a more actively maintained framework.
wxWidgets 3.2.3 Released
Posted on
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 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.2
This release contains many important bug fixes, including for some regressions in the previous 3.2.x releases, as well as build system improvements and a few optimizations.
Without listing all of them, areas with the most improvements were:
-
Internationalization support: fix setting Chinese and some other locales in wxOSX and setting Ukrainian locale in wxMSW and fix loading wxWidgets translations with
wxTranslations::AddStdCatalog()
. -
Wayland support in wxGTK and, in particular, OpenGL support under Wayland: fix hiding
wxGLCanvas
and avoid catastrophically slowing down the entire program when it is hidden; fix crash when using IME; fixes to popup windows, menus andwxPreferencesEditor
behaviour. -
Validators and input: don’t allow pasting characters forbidden by
wxTextValidator
; do allow entering temporary invalid value when using numeric validators. Also fix entering dates inwxGenericDatePicker
in"nb_NO"
and other locales using months names in short date format. -
Key event generation: more fixes for non-US keyboard layout in wxGTK and also generate events for Command+Alt+Letter combination in wxOSX.
All in all, this release includes more than 200 fixes from almost 50 contributors, 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!
wxWidgets 3.2.2.1 Released
Posted on
The very recent 3.2.2 release unfortunately contained a user-visible
regression in wxGenericTreeCtrl
, which stopped showing icons, so we had
to make a hotfix release fixing this problem.
There are no other changes in 3.2.2.1 compared to 3.2.2.