Skip to content
wxWidgets - Cross-Platform GUI Library
Stop Russia agression of Ukraine
Stop the War in Ukraine

wxWidgets is united with the people of Ukraine and the international community.

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, Perl, Ruby and many 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.

Comments

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 wxGenericTreeCtrl and wxGenericListCtrl.

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 wxMessageDialog in 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 wxTextDataObject text in wxMSW.
  • Fix handling of fonts with fractional sizes in wxOSX.
  • Fix resizing wxGLCanvas with EGL and Wayland in wxGTK.
  • Fix display artefacts when using AUI without compositor under X11.
  • Work around crashes when using wxTextCtrl with 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!

Comments

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 wxSearchCtrl in 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 wxImage resizing.
  • 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!

Comments

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.props file, 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!

Comments

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!

Comments

News Archive