- Link: https://www.qt.io/blog/qt-roadmap-for-2021
- Publication Date: Tuesday April 27, 2021
- Author: Tuukka Turunen
With Qt 6.1 soon to be released, it is time to take a look at what the year 2021 has to offer for Qt users. In this post, I’ll go through the Qt framework plans and then talk a bit about tools and other items we are currently developing. As always, there are so many different things in the works that it is not possible to fully explain everything in a single post, but I’ll try to provide a good overview.
In December 2020 we released a new major version of Qt that we had been working on for a long time. It provides a new baseline for the needs of the 2020s while providing a high level of compatibility with Qt 5 to make migration as smooth as possible.
With Qt 6.0 we provide a stable baseline supporting all the most widely used desktop, mobile, and embedded platforms. All the essential modules and the most commonly used add-ons are available with Qt 6.0 – and more add-ons are coming with Qt 6.1 and Qt 6.2 LTS releases.
Qt 6.0 provides the following essential and additional modules:
- Qt Concurrent
- Qt Core
- Qt Core Compatibility APIs
- Qt D-Bus
- Qt GUI
- Qt Help
- Qt Network
- Qt OpenGL
- Qt Print Support
- Qt QML
- Qt Quick
- Qt Quick 3D
- Qt Quick Controls
- Qt Quick Layouts
- Qt Quick Timeline
- Qt Quick Widgets
- Qt Shader Tools
- Qt SQL
- Qt SVG
- Qt Test
- Qt UI Tools
- Qt Wayland
- Qt Wayland Compositor
- Qt Widgets
- Qt XML
- Qt 3D
- Qt Image Formats
- Qt Network Authorization
- M2M package: Qt CoAP
- M2M package: Qt MQTT
- M2M package: Qt OpcUA
If you do not spot a module you need, it can be due to one of the following reasons:
- It is one of the additional libraries coming with Qt 6.1 and Qt 6.2 LTS, listed below
- It has been purposely removed from Qt 6 (like Qt KNX, Qt Script, and Qt XML Patterns)
- The functionality is or will be part of other modules, so it is no longer needed as a separate module (like platform-specific extras)
- It is the intention to make it available after Qt 6.2 LTS
- It is not part of the Qt framework, such as tools (Qt Creator, Qt Design Studio), Qt Safe Renderer, Qt for MCU, etc.
We have made the migration to Qt 6 as straightforward as possible, but some changes can affect porting from Qt 5 to Qt 6. When migrating to Qt 6, note that some old APIs have been removed, and new APIs have been introduced. In the case where the functionality is removed on purpose, your application may need to be modified accordingly, and we have a porting guide to assist you.
Qt 6.1 release is coming at the beginning of May, and you will soon be able to check everything related to it from the release. To take a look into what Qt 6.1 contains, check out the New features of Qt 6.1 wiki page https://wiki.qt.io/New_Features_in_Qt_6.1.
In Qt 6.1 we decided to take a step back with the package manager introduced with Qt 6.0 for getting the additional libraries. Qt 6.1 provides the additional libraries via the same binary installer as the baseline modules. We continue the work with package manager functionality and aim to bring it back at a later point – with improved developer experience compared to what we offered with Qt 6.0.
With Qt 6.1 we provide the following additional libraries:
- Active Qt
- Qt Data Visualization
- Qt Charts
- Qt State Machines
- Qt Lottie
- Qt Virtual Keyboard
- Qt for Device Creation: Qt Device Utilities
- Compatibility: Qt Graphical Effects
We have the release candidate of Qt 6.1 available already and the release with a more detailed blog post on Qt 6.1 is coming soon, so I don’t want to go into details of the new features here. Very shortly, Qt 6.1 provides important new features and updates in many of the base modules (Core, Gui, Network, …) and smaller fixes throughout the framework. With Qt 6.1 we also provide new features in Qt Quick 3D as well as technology previews of upcoming features such as instanced rendering and 3D particles.
Qt 6.2 LTS
Qt 6.2 LTS is targeted for the end of September 2021. It is the first long-term supported release of the Qt 6 series. Both open-source and commercial users receive Qt 6.2.0 and all the Qt 6.2.x patch releases created until the Qt 6.3.0 release (in H1/2022). After Qt 6.3 is released, the subsequent patch releases of Qt 6.2 will be available only for commercial license holders.
For Qt 6.2 LTS we are planning to provide the following additional libraries:
- Qt Bluetooth
- Qt Multimedia
- Qt Positioning
- Qt Quick Dialogs
- Qt Remote Objects
- Qt Sensors
- Qt SerialBus
- Qt SerialPort
- Qt WebChannel
- Qt WebEngine
- Qt WebSockets
- Qt WebView
- Qt NFC
- Qt Application Manager
- Qt Interface Framework (formerly called Qt IVI)
In addition to porting the additional libraries to Qt, we are also working on some important new features to further increase the value provided by Qt 6.2 for the users. For the graphics and UI, we aim to complete and improve the technology preview features introduced in Qt 6.1, making these fully supported. We are improving the workflow and tooling to make it easier to create stunning 2D and 3D user interfaces, running with great performance across desktop, mobile, and embedded platforms. For Qt 6.2 we are also working on improving the non-graphical modules of Qt, further improving performance, convenience for users, as well as better integration with our tools.
We have many platform updates and support for new platforms in development for Qt 6.2, and, as always, we aim to support the up-to-date versions of operating systems and compilers. Apple Silicon / macOS on ARM is one of the most interesting new platforms we intend to support with Qt 6.2. It is already possible to run Qt applications via the Rosetta translation environment and some things work also natively already now. With Qt 6.2 we want to provide macOS on ARM as a fully supported platform, both as a development host as well as a deployment target. We are also working on providing support for QNX and INTEGRITY real-time operating systems with Qt 6.2 LTS.
Qt 5.15 LTS
We have entered the commercial-only LTS phase for Qt 5.15 and released Qt 5.15.3 as the first patch release available only for the commercial license holders. The next patch release is already in the final steps, and we plan to release Qt 5.15.4 soon. The patch releases for Qt 5.15 LTS continue throughout this and the next year, typically with 2-3 month cadence.
For those commercial license holders using the binary installers, everything works exactly like before. The new commercial only LTS patch releases and previews of the upcoming ones are available via the Qt installer. Those needing access to the development repository can access the LTS repositories. We have also updated our Yocto recipes to work with the commercial-only LTS repositories, so if you use Qt for Device Creation, check out the guide on using meta-qt5 with the commercial LTS repositories.
Qt for Microcontrollers and Qt Safe Renderer
Modern microcontrollers have good graphics capabilities – comparable to what was available for typical mainstream embedded microprocessor boards not too long ago. Qt for MCUs is a great fit for the creation of stunning visual user interfaces with the modern microcontrollers from NXP, ST Microelectronics, Renesas, and soon also from Cypress/Infineon. To get an overview of what is possible with Qt for MCUs, check out some of our demos at https://resources.qt.io/qt-mcus, or dive into the technical documentation.
We have already released two feature releases of Qt for MCUs this year and are working on providing Qt for MCUs 1.9 in June. So far Qt for MCUs development has been supported only on a Windows host, but with Qt for MCUs 1.9 we are officially supporting also Linux as a development host. The next major release, Qt for MCUs 2.0, is planned for September, and we aim to release Qt for MCUs 2.1 in December 2021. Development on Qt for MCUs is done with a subset of QML language – the upcoming Qt for MCUs 2.0 will provide compatibility with Qt 6.2 for the supported QML language subset.
Qt Safe Renderer is our functional safety certified UI solution. It is certified for road vehicles (ISO 26262:2018-6, 2018-8 up to ASIL-D), railway applications (EN 50128:2011 6.7.4 up to SIL 4), electrical / electronic safety-related systems (IEC 61508:2010-3 7.4.4 up to SIL 3) and medical (IEC 62304:2015 2006 + A1).
We have been working throughout last year developing and thoroughly testing QSR 1.2. It is currently going through the certification process and is soon to be released. The new release of Qt Safe Renderer brings multiple updates to the rendering functionality as well as extending support to new platforms. Stay tuned for more when we announce the release of the QSR 1.2.
Qt Creator and Qt Design Studio
When talking about all the great things we have in the works for the framework libraries, it is also good to look a bit into the tools. These are, after all, what most of our users work with when developing with Qt, and thus it is crucially important to keep these in top-notch shape. With the introduction of Qt 6.0 in December, we provided support for Qt 6 with both Qt Creator and Qt Design Studio. During 2021 we are further improving the support, and start supporting the new features and functionality that is part of Qt 6.1, Qt 6.2, as well as Qt for MCU and other products we offer.
Around the time of releasing Qt 6.1, we have a new version coming for both Qt Creator and Qt Design Studio as well. Qt Creator 4.15 and Qt Design Studio 2.1 naturally support the new Qt 6.1, but also the earlier Qt versions. If you can’t wait for the soon upcoming releases, check out the most important items from the Qt Creator 4.15 beta blog post and the Qt Design Studio 2.1 beta blog post.
We are planning to release Qt Creator 5.0 in August as the baseline for Qt 6.2 LTS, and the next version in November to further improve the developer tooling. For Qt Design Studio, we are releasing version 2.2 in September to provide designer tooling support for Qt 6.2, and the next version in December. We are also working on bringing these tools closer together, improving the workflow in projects using both tools. Some of these improvements are coming already in the versions released in Q2/21 and further improvements during H2/21.
Quality Assurance Tools
With the recent acquisition of froglogic GmbH we are extending our offering firmly into the domain of quality assurance tools. We continue to further improve the key product lines of froglogic: GUI test automation, code coverage analysis, and test result management. All these products continue to be developed, and we’ll look together into further improving these. We will also look into further synergies as part of the overall Qt offering – in addition to offering these solutions to those who are not using Qt.
Stay tuned for more
Quite a lot in the works for our users to enjoy during this year. I would love to go into details with all of these, but that is beyond the possibilities of a single blog post. But not to worry! We have a great new event, the Dev/Des Days 2021, coming in May 18th – 21st. It is a free online event with a lot of great information. Check it out at https://www.qt.io/devdesdays and register now.
In addition to the Dev/Des Days, we have a lot of interesting webinars and blog posts already published or coming throughout the year, diving into the details of various topics.