Skip to content
wxWidgets - Cross-Platform GUI Library

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.0.5 Released

Posted on

wxWidgets 3.0.5, the latest release in the stable 3.0 series, is now available. Upgrading to it is strongly recommended for all users of the previous 3.0.x release as it brings a lot of bug fixes and support for newer compilers (MinGW 4.9, 5 and 7), SDKs (macOS 10.10 and later) and libraries (GStreamer 1.0) but remains 100% compatible with 3.0.0, both at the API and the ABI level, and so upgrading to it doesn’t require absolutely any changes to the existing applications.

The announcement post contains the fuller list of the most important changes in this release and they are described in even more details in the change log.

As usual, in addition to the sources, you can also download binaries for the selected Windows compilers (any version of Microsoft Visual C++ from 2008 to 2019, MinGW-TDM 4.9.2, 5.1.0 and 9.2.0, or MinGW 7.2.0, 7.3.0 and 8.1.0). And you can read the documentation for this release online.

Thanks to everybody who contributed, by reporting bugs and submitting patches, to this wxWidgets release. We hope you will find it even better than the previous one and will enjoy using it!

Comments

wxWidgets 3.1.3 Released

Posted on

wxWidgets 3.1.3 release 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++ and MinGW-w64.

Please notice that while 3.1.3 is officially a “development” version because it is not fully compatible with the “stable” 3.0.x, the list of backwards incompatible changes is very short, so you shouldn’t have any problems updating to this version from 3.0.x in practice, and you’re encouraged to use this release, including in production.

Changes in this release

There have been almost 2000 commits from 97 unique contributors (52 with multiple contributions) since 3.1.2 releases, so it is impossible to summarize all the changes in this document without making it too long, please see the full changelog for more details, but some of the most important changes are:

  • Support for per-monitor DPI and dynamic DPI changes under MSW.
  • More generally, many fixes for various controls appearance in high DPI.
  • Long requested support for freezing rows and/or columns in wxGrid.
  • New XRC handlers for wxDataViewCtrl, wxInfoBar.
  • It is now possible to use gradients when creating wxGraphicsPen.
  • Extended compiler (MSVS 2019) and platforms (macOS 10.14+) support.
  • Significant improvements to the (still experimental) wxQt port.
  • Important bug fixes for focus handling in wxOSX port.

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

New wxWidgets videos

Posted on

Two new wxWidgets video tutorials have been recently published by Javidx9 on YouTube: here is the first part, introducing programming with wxWidgets in C++ and the here is the second one, showing how to develop a simple application.

If you have always wanted to learn programming wxWidgets but were intimidated by the size of its manual, you may appreciate this alternative way of getting acquainted with it.

Thanks to Javidx9 for producing the videos!

Comments

wxWidgets 3.1.2 Released

Posted on

wxWidgets 3.1.2 release 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-TDM and MinGW-w64.

Please notice that while 3.1.2 is officially a “development” version because it is not fully compatible with the “stable” 3.0.x, the list of backwards incompatible changes is very short, so you shouldn’t have any problems updating to this version from 3.0.x in practice, and you’re encouraged to use this release, including in production.

Changes in this release

There have been more than 1200 commits from 75 contributors (41 with multiple contributions) since 3.1.1, which makes it difficult to summarize them in this short post. The primary focus of this release is on bug fixes (closing more than 100 bugs from wxTrac) and incremental improvements in preparation for the next stable 3.2.0 release, however there is a usual lot of new features as well, including:

  • Initial support for macOS 10.14 and its dark mode.
  • Support for non-integer font sizes and arbitrary font weights.
  • New wxLZMA{Input,Output}Stream classes.
  • Add wxDataViewToggleRenderer::ShowAsRadio(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(), wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(), wxToolbook::EnablePage().

Some of the other improvements:

  • There were again many improvements to the (still experimental) wxQt port.
  • Fix several bugs related to focus handling and TAB navigation in wxGTK.
  • Make it possible to control pagination in wxHTML more precisely.
  • Fix several problems with high-DPI displays.
  • wxOSX now uses native NSImage/UIImage representation for wxBitmap.
  • Support strike-through font attribute in XRC and wxDataViewCtrl markup too.
  • Support more than 4 buttons in wxJoystick.
  • Add wxwidgets.props property sheet file for MSVS users.

Please see the full changelog for even more details.

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

New wxWidgets Book

Posted on

A new book, “Cross-platform programming with C++ and wxWidgets” by Bartosz W. Warzocha has just been published. This book is currently available in Polish at Polish Scientific Publishers PWN online book-store but translations into other languages may become available in the future.

The book has over 1100 pages, 27 chapters and 34 working sample applications. It is a comprehensive programming guide to wxWidgets 3, full of reliable information and practical solutions - from the basic or elementary to advanced (or even on the verge of what might be considered ‘impossible’). It’s intended for C++ programmers who want to create modern and powerful applications for operating systems from Microsoft and different Linux distributions.

The book consists of four main parts. The first one is an introduction to wxWidgets in which you can find detailed information about downloading, installation and configuration of the wxWidgets as well as learn how to create the first wxWidgets application. The second part is dedicated to the development of two example programs - a ‘Hangman’ game, and a simple - but almost fully-functional - IDE for C++ programming (with advanced styled text control, XML based project file support and a simple printing system). The third part of book shows how to work with standard dialogs, create your own dialogs and how to work with data validators, including creating custom advanced validators based on regular expressions. The final part covers more advanced wxWidgets techniques and topics - from specific wxWidgets data types and detailed aspects of working with file system, to multithreading, network programming, generic controls creation and modern OpenGL.

As mentioned earlier, an inseparable part of the book are interesting and sometimes quite advanced working sample applications (of course licensed under the wxWidgets licence). They have been prepared for Microsoft Visual Studio 2015 and the Code::Blocks IDE and they are available in the source and binary versions, so you can work with the book more efficiently or just create your own programs based on them.

Comments

News Archive