Qt 6.0 Feature Freeze Milestone Reached

We are super-excited that a significant milestone, the feature freeze of the next major version of Qt, has been reached! We now have the functionality in place, and the following months will be spent in polishing and tuning the release. Target is to complete the maturation phase in the coming months to be able to release Qt 6.0.0 in December.

Over the past few years, we have been working to research, plan, and create the next Qt version. Qt 5 has been a great success, and it is a solid foundation for the development of applications and devices still for many years to come. But the world is changing, so we are introducing a version that takes Qt users into the new decade. The Qt 6 technical vision blog post by Lars offers a great overview of Qt 6.0 future strategy.   

Qt 6.0 Timeline

There are already multiple separate blog posts regarding the features and functionality of Qt 6, and there are also many more to come. Therefore, in this post, I am focusing on the structure, and timeline of Qt 6.0.

First, let’s review the major milestones of the Qt 6.0 development schedule:

  • January 2020: Qt 5.15 branched, development branch becomes Qt 6.0, merge of the feature branches
  • June 2020: Structural freeze, supported modules and platforms defined, first binary snapshot released
  • August 2020: Feature freeze, all functionality completed
  • September 2020: Alpha release
  • October 2020: Beta phase starts, multiple beta snapshot releases
  • November 2020: Release Candidate
  • December 2020: Qt 6.0.0 Release

With the feature freeze milestone now reached, next milestone is the Alpha release. This is still quite a lot geared for those participating development of Qt itself as well those who want to closely follow how Qt 6.0 is shaping up. The Beta releases are what we hope all Qt users take a look and provide feedback. During the Beta phase they key goal is to address as much as possible the issues hindering using Qt 6.0 – so the feedback from all Qt users is very important.   

Qt 6.0 Supported Platforms and Modules

For Qt 6.0, our focus is on the essential modules as well as a few selected add-ons. As always, with a new major release, we also do not have all the upcoming target configurations yet supported. After Qt 6.0, our goal is to release Qt 6.1, Qt 6.2 LTS, as well as multiple patch releases during 2021. These releases will provide support for additional add-on modules and target configurations.

Qt 6.0 supports the following modules:

  • Qt Core
  • Qt GUI
  • Qt Widgets
  • Qt Network
  • Qt QML
  • Qt Quick
  • Qt Quick Controls
  • Qt Quick 3D
  • Qt Shader Tools
  • Qt Quick Timeline
  • Qt Wayland
  • Qt Wayland Compositor
  • Qt SVG
  • Qt Concurrent
  • Qt D-Bus
  • Qt OpenGL and Qt OpenGL Widgets (note different than in Qt 5)
  • Qt 3D
  • Qt Network Authorization
  • Qt SQL
  • Qt Printing Support
  • Qt Test
  • Qt Help

 …and a few other ones.

Within the modules, some old APIs have been removed, and new APIs have been introduced.  In case where the functionality is removed on purpose (deprecated in Qt 5.15), the application may need to be modified accordingly and we will prepare a migration guide to assist you.

Some modules that are present in Qt 5 are not listed above because:

  • They are purposely removed (like Qt Script and Qt XML Patterns)
  • The functionality is part of other modules, so it is no longer needed as a separate module (like platform specific extras)
  • We plan to add those in later Qt 6.x feature releases (like Qt Multimedia, Qt Bluetooth and Qt Virtual Keyboard).

If your application depends upon functionality missing from Qt 6.0, it may be need to wait until a Qt 6.x release provides it. As an long term support release, Qt 5.15 LTS serves this use-case specifically, keeping your project maintained with new patch releases.  

Qt 6.0 supports the majority of all desktop, mobile and embedded platforms. Due to our C++17 requirement, a up-to-date compiler is essential. Support for real-time operating systems, is planned to be on a ‘technology preview’ level, i.e. development and testing is possible. We’ll provide a more detailed roadmap for supported hosts and targets with the upcoming alpha and beta releases.

How can I try Qt 6.0?

We are developing Qt 6.0 together with the whole Qt community. The source code repositories are available, and everyone can join the development via the Qt Project. We have released regular snapshots of Qt 6.0 since June and continue towards the final. With the feature freeze now in place and Alpha approaching, the snapshots improve the usability for trying Qt 6.0. During the Beta phase, we hope that most of you will try out the snapshots, and provide us with feedback.

The Qt 6.0 snapshots are available via the Qt online installer. All you have to do is to enable the ‘Preview’ category. To gain access to the source code, simply clone from the Qt Project repositories – or use the source code packages that are available as part of the Qt 6.0 snapshot releases.  

To report your finding, please use bugreports.qt.io – or discuss it first with others via the Qt Project mailing lists or the Qt Developer Forums.

Blog Topics: