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.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.
wxWidgets 3.2.2 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.1
This release comes only a few months after the previous 3.2.1, but contains an important number of bug fixes and enhancements, further improving high DPI support, including:
- Better window resizing on DPI change in wxMSW.
- Fix using native icons returned by
wxArtProvider. - Fix menu items using custom font in high DPI.
- High resolution icons support in
wxGenericTreeCtrlandwxGenericListCtrl.
and also improving locale-related code under Mac and Unix systems:
wxUILocale::UseDefault()works for locales using different language and region under Mac and fails when used for unsupported locale under Unix.- New
wxUILocale::GetSystemLocaleId()allows to retrieve such locales IDs. wxUILocale::GetCurrent()works currently for “C” locale under Mac.
Some other user-visible enhancements made in this release:
- Allow selecting and copying text in
wxMessageDialogin wxGTK. - Improve size and behaviour of in-place editor in
wxGenericTreeCtrl. - Fix sometimes missing overwrite prompt in “Save” file dialog in wxMSW.
- Fix glitch in drawing wxStaticBox with a control as label in wxMSW.
There are also some important bug fixes:
- Fix regression in saving TIFF images that could end up truncated.
- Fix long standing bug in parsing wxHTTP responses.
- Fix data race when processing events generated in a worker thread.
- Avoid appending extraneous NUL bytes to
wxTextDataObjecttext in wxMSW. - Fix handling of fonts with fractional sizes in wxOSX.
- Fix resizing
wxGLCanvaswith EGL and Wayland in wxGTK. - Fix display artefacts when using AUI without compositor under X11.
- Work around crashes when using
wxTextCtrlwith MinGW TDM 64. - Fix for a possible crash when handling menu events under Mac.
- Third-party libraries have been updated to the latest versions.
All in all, this release includes ~150 fixes from 27 unique 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.1 Released
Posted on
The second release in the recently started 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 in this release
Coming soon after 3.2.0, this is mostly a bug fix release, with just one noteworthy new feature: the addition of wxFileDialog::AddShortcut() function. However it fixes some important regressions and other problems:
- Fix crash in applications calling
g_log_set_writer_func()with recent glib. - Several fixes to alpha channel handling in wxMSW bitmaps.
- Generate key and focus events for
wxSearchCtrlin wxOSX. - Fix creating wxRadioBox without any items in wxOSX.
- Fix regression with AUI floating pane positioning.
- Avoid new warnings given by gcc 12.
- Fix building with MSVS 2022 standard-conforming preprocessor.
- Work around MSVS 2022 optimizer bug that broke
wxImageresizing. - NetBSD build fixes.
Please see the full change log for more details.
This release is API and ABI-compatible with 3.2.0, 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.0 Released
Posted on
After almost 9 years since the beginning of the last wxWidgets stable release series, the first release in the new stable 3.2 series is finally 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 in this release
This release is a culmination of many years of development since the last stable 3.0 release. It contains more than 15,000 commits from more than 400 unique contributors (including more than 200 with multiple contributions) and has too many improvements to list them all here, but here is a maximally condensed summary of the most important ones:
- Build system improvements: support for new compilers (up to MSVS 2022,
g++ 12, clang 14) with an even simpler way of using wxWidgets from
MSVS, with
wxwidgets.propsfile, as well as an entirely new CMake build system. - Support for native dark mode under macOS 10.14 and later, support for ARM hardware and macOS versions up to 13.
- High DPI support with the new, but almost perfectly backwards- compatible, API based on wxBitmapBundle, including per-monitor DPI and dynamic DPI changes.
- New features: HTTPS and HTTP/2 support with wxWebRequest and friends; support for freezing rows/columns in wxGrid; mouse gesture events (GSoC 2017 project); non-integer font sizes and arbitrary font weights in wxFont; fractional pen widths in wxGraphicsContext; arbitrary label windows in wxStaticBox; markup in wxDataViewCtrl items text; support for ZIP 64 files; LZMA compression; much improved accessibility support under MSW; new Edge-based wxWebView implementation; support for using native spell-checking in wxTextCtrl; new PCRE-based wxRegEx.
- New classes: wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempFFile, wxUILocale and many new features in the existing classes.
- New XRC handlers for all the new and some of the existing classes.
- Significant improvements to: wxBusyInfo, wxDataViewCtrl, wxDirDialog, wxGrid, wxNotificationMessage, wxSpinCtrl, wxStaticBox, wxStyledTextCtrl, wxUIActionSimulator.
- Improvements to compile-time safety with the possibility to disable dangerous
implicit conversions between wxString and
char*strings. - Latest versions of all bundled 3rd party libraries, including all the security fixes and support for WebKit 2 and GStreamer 1.7 under Unix.
- Better, even if still perfectible, Wayland support in wxGTK.
- Revamped OpenGL support better suited to modern OpenGL (3.2+).
- Further C++11 and later support improvements, wxWidgets can be built using C++20 compilers.
- New experimental wxQt port.
- Many, many bug fixes.
Note that in spite of all these changes, wxWidgets 3.2.0 is almost fully compatible with wxWidgets 3.0 and updating the existing applications to use it shouldn’t require much effort. But please do read the (relatively short) section listing the incompatible changes in the beginning of the change log file if you’re upgrading from a previous wxWidgets version.
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 everybody who has contributed to this release and we hope that you will enjoy working with it!
Goodbye Trac
Posted on
After almost 15 years of using Trac as our bug tracker (thank you Trac
developers for providing the tool that was so helpful for us during all these
years!), we’ve just migrated all the tickets from it to GitHub Issues.
Most of the existing issues, with the exception of the very old ones, have
kept their existing numbers, so instead of
https://trac.wxwidgets.org/ticket/NNNNN you can simply use
https://github.com/wxWidgets/wxWidgets/issues/NNNNN now and we will
probably put in place an automatic redirect from the former to the latter
soon. And to report new issues, please go to
https://github.com/wxWidgets/wxWidgets/issues/new/
There are many advantages of using GitHub Issues instead of our own Trac installation, e.g. GitHub web UI is easier to use and much faster. And you also don’t need to create, or use, a separate account, as was the case for wxTrac. However this is also the main disadvantage of this change: you now need to have a GitHub account in order to report issues in wxWidgets. We hope that relatively few people will be negatively affected by this, but for those who are, please post your bug reports to our mailing lists instead.
And please also use the mailing lists to let us know if you encounter any problems after this migration!
