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.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!
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.
wxWidgets 3.0.4 Released
Posted on
wxWidgets 3.0.4, 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 2017, MinGW-TDM 4.9.2 or 5.1.0, or MinGW 7.2.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!
wxWidgets 3.1.1 Released
Posted on
After a long period of development, wxWidgets 3.1.1 has been released today and is available from GitHub. As usual, along with sources and documentation, we provide binaries for the selected Windows compilers (Microsoft Visual C++ and MinGW-TDM).
Please notice that while 3.1.1 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 try this version out and use it in production in spite of its odd version number.
Compared to 3.0, in addition to the changes in the previous release, this version brings:
- Support for gesture events (GSoC 2017 project).
- Getting JavaScript code return value from wxWebView (also GSoC 2017 project).
- New wxSecretStore class for securely storing user passwords.
- New, available in parallel with the existing one, CMake build system.
- Support for context-sensitive translations.
- Possibility to disable unsafe wxString conversions on the opt-in basis (see this post for more details).
- Support for using any window (e.g. wxCheckBox) as wxStaticBox label.
- Many improvements to accessibility support under MSW.
- Support for fractional pen widths in wxGraphicsContext.
- Many improvements to the (still experimental) wxQt port.
Additionally, the latest versions of compilers (e.g. MSVS 2017) and operating systems (macOS 10.12) are now supported and all the third party libraries have been updated to their latest versions.
Of course, this brief list doesn’t cover all the changes done in more than 2800 commits since 3.1.0, please see the full change log for a more detailed list.
Thanks to everybody who has contributed to this release and we hope that you will enjoy working with it!
GSoC 2017 Projects
Posted on
wxWidgets has been allocated two slots for this year Google Summer of Code. Congratulations to Prashant Kumar and Jose Lorenzo for being selected to work on them! This year projects are: adding support for multi-touch gestures to wxWidgets (Prashant) and improving integration with JavaScript in wxWebView (Jose). Good luck to our students and looking forward to seeing the result of their work in wxWidgets!
Thanks to everyone who has applied to wxWidgets organization this year, to our mentors and, of course, to Google for organizing GSoC.