I’m happy to announce the release of Qt 6.2. Qt 6.2 is the release we’ve all been working towards since we started our path towards a new major version of Qt. It benefits from all the architectural upgrades we’ve done for Qt 6 and includes essentially all the additional modules you enjoyed with Qt 5.15.
Qt 6.2 is also the first release of Qt 6 that will be long-term supported by The Qt Company for Qt commercial customers.
Our plan when moving to Qt 6 has been to focus on the core of Qt first and doing the architectural changes that we believed were required to keep Qt competitive in the years to come. But that focus also meant that we had to compromise on the add-ons we supported when we released Qt 6.0. So, even though Qt 6.0 is better and more advanced than Qt 5.15, it did lack some of the functionality that Qt 5.15 provided. With Qt 6.2 we have closed that gap and include all the commonly used functionality from Qt 5.15 as well as the new features added for Qt 6.
With the release of Qt 6.2, almost all our users should be able to migrate their code from Qt 5 over to Qt 6. We have done so with our own tooling. Namely, Qt Design Studio 2.2 and the soon-to-be-released Qt Creator 6 beta are both based on Qt 6.2 LTS.
Apart from adding missing features, Qt 6.2 focused on improving stability, performance, and developers’ quality of life.
Let’s recap some of the main changes in Qt 6 before having a closer look at what’s new in 6.2, specifically.
Architectural changes for Qt 6
We made a couple of more extensive architectural changes in Qt 6 that we are now building upon with Qt 6.2 and any future release. Those changes included
- Leveraging C++17 We wanted to build upon a modern C++ standard when working on Qt 6. C++17 was the latest version released, and Qt 6 now relies on a C++17 compatible compiler. This made it possible to both clean up and improve our code base and offer more modern APIs to our users.
- Improvements to our low-level container classes with regards to handling large data sets and performance.
- Next-generation QML We have started a greater effort towards renewing the QML language and make it safer and easier to use in the future. Qt 6.0 – 6.2 laid the foundations here, but this ongoing effort will continue throughout the Qt 6 series.
- Bringing property bindings to C++ Property bindings have been one of the concepts that made QML so successful. With Qt 6, we have been making that concept available in C++.
- New graphics architecture Qt 6 put a whole new architecture in place on how to handle the integration with APIs of the underlying operating system. Thanks to the new Rendering Hardware Interface (RHI), Qt 6 now uses the best graphics API available on each system by default, significantly increasing compatibility – especially on desktop and mobile operating systems such as Windows and macOS, and iOS.
- Unified 2D and 3D for Qt Quick Qt Quick has traditionally been a framework for building animated and fluid 2D user interfaces. With Qt 6, we simplified integrating 3D content to your QML based application, too. A deep integration makes it trivial to mix 2D and 3D content at any level while getting the maximum performance out of the system.
- CMake build system With Qt 6, we switched our build system from qmake to cmake, the standard build system for C++-based apps nowadays. While qmake is still supported for the lifetime of Qt 6, preliminary user reports indicate significant improvements after switching to cmake.
Despite all those changes, porting your existing code base to Qt 6 should be straightforward. You can read more about it further down in the blog post.
Let’s now have a closer look at what’s new in Qt 6.2.
Added modules
One of the major efforts when developing Qt 6.2 has been to add back all the modules and functionality that we left out in Qt 6.0. With very few exceptions, all modules that have been supported in Qt 5.15 are now also supported in Qt 6.2.
With Qt 6.2, we’ve added support for the following additional modules (on top of what we already had in Qt 6.1):
- Qt Bluetooth
- Qt Multimedia
- Qt NFC
- Qt Positioning
- Qt Quick Dialogs
- Qt RemoteObjects
- Qt Sensors
- Qt SerialBus
- Qt SerialPort
- Qt WebChannel
- Qt WebEngine
- Qt WebSockets
- Qt WebView
The API for these modules is in mostly backwards compatible with Qt 5 and will only require minor adjustments of user code when porting to Qt 6.
The full list of modules that are supported with Qt 6.2 can be found in our documentation.
New features in Qt 6.2
In addition to many modules we’ve brought over from Qt 5, we also have a large set of new features and functionality in 6.2. Let’s have a look.
Qt Quick 3D
Qt Quick 3D has gained some cool new features and now supports instanced rendering, allowing you to render large amounts of the same object with different transformations. We also added a new API for adding 3D particle effects to a scene.
更多 https://www.qt.io/blog/qt-6.2-lts-released