The largest focus of Qt 6.1 has been to bring many of the add-on modules that we supported in Qt 5.15 over to Qt 6. Those modules are
Active Qt: Qt module to support COM and ActiveX controls on Windows
Qt Charts:Add charts to your application
Qt Data Visualization: Visualize static and dynamic data
Qt Device Utilities: Part of Qt for Device Creation only
Qt Graphical Effects: Added as a compatibility module to aid porting to Qt 6
Qt Lottie: Render graphics and animations created in Adobe After Effects
Qt State Machine: Contains the state machine API from Qt Core in Qt 5 and the SCXML based state machine code
Qt Virtual Keyboard: Add a virtual keyboard to your embedded device
Those modules bring back a lot of the features from Qt 5.15 that you might have missed in Qt 6.0. There are still a couple of modules being worked on to be brought to Qt 6 with the Qt 6.2 release. For details, check out the blog about the Qt roadmap for 2021.
Qt 6.1 fixes a large number of bugs that were reported against Qt 6.0 or Qt 5.15 and apart from adding the modules listed above this has been our main focus. Fixing bugs will also continue to be a focus area as we get closer to Qt 6.2, which is planned to be the first Long-Term-Supported (LTS) release of the Qt 6 series.
Of course, Qt 6.1 also includes a couple of new features in modules that existed in Qt 6.0. Let’s talk about some highlights here, but for a full list, please have a look at the release notes and thenew features page on our wiki.
In Qt Core, most efforts have been in adding more convenience and simplifications to our APIs. Amongst other things, we added removeIf() methods and extended the support of erase_if() to more of our classes; we added a few missing methods in QStringView to make it better mirror the QString API. We now have overflow-safe add, subtract and multiply functions and improved the support for 16 bit floating point values. The property bindings introduced in Qt 6.0 have gotten some API refinements. Another major feature are the new classes to simplify integration with Java, QJniEnvironment and QJniObject. Those are mainly used on Android.
In Qt Gui, there is now a new QUrlResourceProvider class that can be used to avoid subclassing QTextDocument and reimplementing loadResource(). It can also be used by QLabel. We have now better support for Vulkan 1.1 and 1.2 in the Vulkan API wrappers, and QColorSpace can now use custom transfer functions.
In Qt Network, we introduced a new QNetworkInformation class that exposes the reachability of the system and our cookie handling now supports the SameSite feature.
Qt Quick 3D now supports morph target animations. In addition, there is support for instanced renderingand 3D particleson a Technology Preview level. Instanced rendering can dramatically increase rendering performance when a large amount of similar items need to be rendered in the scene. The 3D particles use instanced rendering for the particle effects. Those Both features are expected to be fully supported in 6.2.
We will soon also release an updated version of Qt for Python that will provide support for the modules we added in Qt 6.1. In addition, it features better support for external deployment tools, and even a new Technical Preview of a commercial tool. Stay tuned for a blog post coming in the next days.
Getting the Release
Qt 6.1 is available via our download page or the online installer for all commercial subscription license holders as well as open-source users. For the users with old commercial license (non-subscription) we offer a convenient way to evaluate Qt 6.1 via the Qt Account. More information on Qt 6 licensing is available from our FAQ.
Qt 6.1 would not have happened without a lot of work and effort from a large set of people. You can find the full list of the people who have contributed patches as well as a more detailed Release notes here. I’d like to thank everyone who has contributed warmly, be it by patches, bug reports or discussions.