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.9 Released
Posted on
3.2.9 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, including Winlibs gcc 14.2 binaries using UCRT that can be used with the compiler used by Code::Blocks 25.03 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.8
This release doesn’t add any major new features, but contains some important fixes for bugs found in the previous 3.2.8 release:
- Fix crash when using Farsi as system language under macOS (#25561).
- Fix handling total window size with GNOME with X11 (#25348).
- Fix
wxGLCanvasscale when using EGL/Wayland in high DPI (#23733). - Fix missing
wxEVT_CHARfor Ctrl-Letter in non-US layouts (#25384). - Fix selecting columns in wxGrid with mouse (#25884).
The new release still contains a couple of enhancements, including:
- Many improvements to CMake build system (#25448, #25749, #25998).
- Support for building under macOS 26 Tahoe (#25798).
- Fix
wxStyledTextCtrlsupport in screen readers (#25963). - Respect HTML5 charset attribute in wxHTML (#25546).
- Add support for using EGL 1.4 (and not 1.5) in
wxGLCanvas(#22325).
Other changes include:
- Fix memory leak in
wxColour::Set()under macOS (#25569). - Fix memory leak when using
wxOverlayin wxGTK (#24500). - Reduce
wxStaticBitmapGDI resource usage in wxMSW (#25698). - Significantly improve performance of drawing bitmaps in wxAUI (#23841).
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.3.1 Released
Posted on
wxWidgets 3.3.1 has been released and is now available on GitHub, from where you can download archives with the library sources and documentation as binaries for the selected Windows compilers. Documentation for this version is now also available online or can be downloaded from the link above for the offline use. In particular, if you are new to wxWidgets, you may find the installation guide a good starting point.
This is a second release in the 3.3 series and comes soon after 3.3.0 as it contains a number of important fixes for the regressions and other bugs found in 3.3.0. Please update to this release if you are already using 3.3.0 as it is fully compatible with it.
The most important fixes since 3.3.0 include:
- Restore Windows date/time pickers behaviour under non-English OS (#25511).
- Fix crash on startup under macOS when using Farsi as system language (#25561).
- Fix losing
wxGenericListCtrlcontents afterAppendColumn()(#25519). - Fix crash when sorting
wxDataViewCtrlin wxGTK in some circumstances (#25625). - Fix crash when using per-window menu in Windows MDI applications (#25522).
- Restore inadvertently broken API compatibility in
wxPropertyGrid(#25627).
There were also a number of fixes to the new Windows dark mode support:
- Fix crash with
wxStaticBitmapinsidewxNotebookin dark mode (#25499). - Fix disabled
wxButtonbitmaps appearance in dark mode (#25575). - Fix disabled
wxStaticTextappearance in dark mode (#25574). - Fix notebook background in dark high contrast themes (#25542).
- Fix regression in
wxDataViewCtrlborder in light mode (#25532). - Fix selected toolbar buttons in dark mode (#25616).
- Fix
wxComboCtrlappearance in dark mode (#23766). - Fix
wxTE_RICHwxTextCtrlappearance in dark mode (#25602).
And, finally, this release also contains a small number of new features:
- Allow setting “app id” under supported platforms (Windows/Wayland) (#25548).
- Add persistence support for
wxRadioButtons(#25530) andwxCheckBox(#25515). - Add support for PNG “Description” text chunk to
wxImage(#25556). wxNumberFormatterimprovements (#25614, #25635).
Please see the change log for a fuller list of the other improvements and the previous release announcement for the description of changes in wxWidgets 3.3 compared to the previous stable 3.2 branch. Note that in spite of all these changes, wxWidgets 3.3.1 is almost fully compatible with wxWidgets 3.2 and updating the existing applications to use it shouldn’t require much effort. However please make sure to read the “INCOMPATIBLE CHANGES” section of the change log when upgrading to be aware of the breaking changes in it.
Thanks to all the people who have contributed to this release and we hope you will find it useful and will enjoy working with it!
wxWidgets 3.3.0 Released
Posted on
wxWidgets 3.3.0 has been released today, as planned, 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. Documentation for this version is now also available online or can be downloaded from the link above for the offline use. In particular, if you are new to wxWidgets, you may find the installation guide a good starting point.
This is the first release in the 3.3 development branch, bringing many new features and improvements compared to the stable 3.2 branch while remaining mostly API-compatible with it. Please note that even if this is not a “stable” release, it is still considered to be suitable for production use, the only difference with the stable releases is that API and ABI compatibility are not guaranteed for the releases in this series. In practice, however, backwards-incompatible API changes are expected to be rare.
With more than 5300 commits since 3.2, there are too many changes to list them all here, but here are some of the most important ones:
- The long awaited support for dark mode for Windows is finally here.
wxWebViewhas gained a new Chrome-based backend and many other more minor new features and improvements.- Support for pinned and multiline tabs was added to
wxAuiNotebook. wxImagenow supports images in WebP format.- Support for high DPI cursors and animations was added.
- All included third party libraries have been updated to their latest versions.
- The library now builds with the latest compilers (gcc 15, clang 19/Xcode 16) and using recent C++ standards.
Please see the change log for a fuller, even if still incomplete, list of the other improvements. Note that in spite of all these changes, wxWidgets 3.3 is almost fully compatible with wxWidgets 3.2 and updating the existing applications to use it shouldn’t require much effort. However please make sure to read the “INCOMPATIBLE CHANGES” section of the change log when upgrading to be aware of the breaking changes in it.
Thanks to all the people who have contributed to this release, including 180 unique committers and many others who have helped by reporting bugs, providing support, making translations or otherwise contributing to the project! We hope you will find it useful and will enjoy working with it!
wxWidgets 3.2.8.1 Released
Posted on
New 3.2.8.1 maintenance release is now available on GitHub. This
is a hot fix release fixing a couple of regressions in 3.2.8 related to ELF
symbol versions, as the changes improving their handling done in 3.2.8 broke
the build when using custom library flavour (i.e. --with-flavour configure
option, see #25436) and also building using LTO with clang (#25438).
There are no other changes in this release compared to 3.2.8, so please refer to this release announcement for more details about the changes since 3.2.7 and more links.
wxWidgets 3.2.8 Released
Posted on
3.2.8 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.7
The focus of this release, coming soon after the previous one, is to fix several problems found in 3.2.7:
- Fix crash in
wxPropertyGridwith wxGTK3 after recent change (#25286). - Fix padding of
wxMenuin high DPI under Windows 11 (#25117). - Fix key codes in
WXK_NUMPADxevents in wxGTK (#25263). - Fix ABI breakage for versioned symbols in 3.2.7 (#25327).
- Fix third party libraries build with Xcode 16.3.
- Fix using OpenGL and WebView when using CMake install (#25266).
But it still contains a couple of enhancements, including:
- Add
wxVector(std::initializer_list<U> list)constructor (#25290). - Add mouse scrolling support to generic
wxSpinCtrl(#24935). - Add
@USER@macro to HTML and RichText printers (#25318).
Other changes include:
- Call
OnExceptionInMainLoop()in wxGTK if idle event handler throws (#25312). - Compute
wxStaticTextbest size ourselves if GTK does it wrongly (#24781). - Fix page count display in
wxHtmlPrintoutwhen there is only one page ([#25320]). - Miscellaneous CMake build improvements (#25324).
- Fix new warnings with gcc 15 (#25338).
- Update Brazilian Portuguese translations.
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!
