The Qt Company has released the first beta of Qt 6.1 has been released. With the updates, the 6-series of the cross-platform framework closes to Qt 5.x on. The developers have ported numerous modules that can be used in Qt 6.0 were missing, including Qt Data Visualization, Qt Device Utilities, Active Qt and Qt Lottie. However, some modules are currently only implemented to a limited extent.
The addition of the modules should enable or simplify the porting of more Qt 5 applications to Qt 6. The Qt Company had described the Qt 6.0, which will be released in December 2020, as an incomplete starting point for the next Qt generation and announced that it would close the gaps in comparison to Qt 5.x within the next few months.
Visualization with old backend
The release brings two data visualization components: Qt Charts and Qt Data Visualization. However, both modules cannot yet use the full scope of the new Rendering Hardware Interface (RHI). The latter is the newly introduced general abstraction layer for 3D graphics, which unlike Qt 5 offers not only a connection to OpenGL, but also to Vulkan, Metal and Direct 3D.
However, the visualization modules that have now been ported initially rely exclusively on OpenGL for graphics acceleration. For Qt Data Visualization, the environment variable QSG_RHI_BACKEND must have the value opengl. Similarly, Qt Quick displays Qt-Charts elements only when OpenGL is selected as the renderer.
Lottie, finite automaton, virtual keyboard and more
In addition, the beta brings the modules Qt Lottie.x modules Qt Lottie, Qt Virtual Keyboard and Qt Device Utilities. The latter are currently limited to network functions. The package Qt State Machines for finite automata combines the previously separate modules Qt StateMachine and Qt SCXML. The latter allows state machines defined in State Chart XML (SCXML) to be embedded in Qt applications.
The also ported Active Qt offers a connection to ActiveX and COM under Windows. Qt applications can access other ActiveX controls and COM objects as well as provide their own objects as COM servers.
Growth in the modules
Some modules already implemented in Qt 6.0 have some new features in 6.1 some new features on board. The central module QtCore extends QFuture and the QStringView API, among others. Furthermore, the methods removeIf() and erase_if() can now be used under certain conditions for QHash, QMap, QSet, QString, QByteArray, QList and QVarLengthArray.
It is worth mentioning that QNetworkCookie in the QtNetwork module now recognizes the SameSite attribute. Finally, Qt Quick3D includes an approach called Instanced Rendering, which optimizes the rendering of multiple instances of the same object. Currently it is still marked as Technical Preview as well as the 3D Particles API for particle systems, which is not feature-complete yet.
All beta releases will be available exclusively through the framework’s online installer. The final release of Qt 6.1 is scheduled for release in April. Further details can be found on the Qt blog.