Qt 5.14 released!

Just in time to get you into the holiday spirit, we have released Qt 5.14 today. This release, as well as next year’s Qt 5.15 LTS start paving the way towards Qt 6. While we are working on making porting to Qt 6 as smooth as possible in the future by flagging deprecated functionalities, we are also introducing some of the new  features you can enjoy now already. Have a look at some of the highlights and sign up for our webinar, where we'll have a look at those changes in detail.

Qt Quick

We are working on some larger changes to our graphics stack to prepare Qt for the challenges that lie ahead in terms of productivity, graphics API support and performance. 

Qt graphics stack: What is new with 3D development with Qt?

With Qt 5.14, we are taking the first steps in making Qt independent of the 3D graphics API provided by the operating system. While we so far have relied on OpenGL as the baseline graphics API, we are now starting to support a wider variety of graphics APIs. Qt 5.14 includes a first preview of a graphics-API-independent scenegraph renderer (through an abstraction layer called the Qt Rendering Hardware Interface) as an opt-in feature, which lets you run Qt Quick applications on top of Vulkan, Metal, and Direct3D 11. This will allow you to optionally run Qt application directly on top of the native graphics API provided by the operating system. This will also make upgrading to Qt 6 easier as the Rendering Hardware Interface will be the standard way of rendering graphics in Qt 6.

As you can imagine, there’s a lot more to this project. Laszlo Agocs has written a comprehensive series of blog posts on these changes. Check them out here, here, and here. I also recommend you watch Laszlo's Qt World Summit presentation, which you can find by clicking the tile to the right.

There are two more exciting additions to Qt Quick: One is a new model called Qt Quick Timeline. This module provides an easier way to animate properties via timelines and keyframes and it is also used by Design Studio. The other addition is an event handler for the mouse wheel (aptly named "WheelHandler") and for emulated mouse wheel events coming from a trackpad.

Qt Quick 3D

Combine 2D and 3D elements in UI design with Qt Quick

Qt Quick 3D is a new module that we are working on to provide a high-level API for creating 3D content for user interfaces from Qt Quick. In short; you can now use QML to define also 3D scenes allowing you to use QML based approach for both 2D and 3D parts of your UI. This new approach will let you use one runtime (Qt Quick), one common scene graph and one animation framework. And you'll be able to design all of this graphically within one design tool: Qt Design Studio. This should not only make all the different features more convenient for you to access; the goal is to make it as easy to define 3D content and UI elements in Qt as it currently is for 2D user interfaces. Qt Quick 3D is available as a Technology Preview in 5.14 and we expect to make it a fully supported part of Qt with our Qt 5.15 release.

Again, there is a lot more to cover. Andy Nichols’ recent blog post on Qt Quick 3D and his Qt World Summit talk "Combine 2D and 3D elements in UI design with Qt Quick" to the right shine more light on the topic.

Qt for desktop and mobile

High-dpi support has received another set of improvements, including support for non integer scale factors commonly used on Windows.

We've added Color space support for images, so that those images will now look 100% correct on a calibrated monitor. Another nice small new feature is the new QColorConstants namespace, that provides compile time generated QColor instances with a lot of predefined colours.

The text editors for Qt Widgets and Qt Quick now support reading and writing Markdown format. Our internationalisation support has also improved with an update to version 12.1 of the Unicode specification and the new QCalendar API that adds support for other calendaring systems than Gregorian.

On Android, we now added support for multi ABI builds, allowing you to compile your application for multiple target architectures in one go. We also added support for the new AAB package format, which allows deploying of a single package covering all target architectures in one go to the Google Play Store.

Qt Creator 4.11

In addition to Qt 5.14 we release Qt Creator 4.11 today. I wanted to highlight that Qt Creator now has experimental support for Qt for MCUs and/or Qt for WebAssembly. There are a lot more exciting changes to Qt Creator in this release. Read the details in Eike Ziller's comprehensive blog post about version 4.11 and hack away!

Qt Design Studio 1.4

 
Turn Sketch or Photoshop UI designs into working prototypes

We've also worked hard to get Qt Design Studio up to speed with current development. Specifically, it now also features experimental support for the above mentioned Qt Quick 3D, so users can now import and work with 3D content in Qt Design Studio 1.4. Features like states and the timeline are fully supported in 3D scenes as well.

For more information and a video of the tool in action, please read Thomas Hartmann's blog post. We also have a VOD of his Qt World Summit talk about turning your Sketch or Photoshop UI designs into working prototypes in our resource center. Get there directly via the tile to the right!

We are expecting to release Qt Design Studio 1.4 soon. 

 

Performance improvements in Qt 3D

KDAB has made a lot of optimisations in Qt 3D for 5.14, including threading changes, dropping frame-buffer objects from common cases, notification system changes, and more. These improvements reduce the CPU overhead involved in rendering a frame as well as the amount of thread synchronisation that can result in wasted time on some systems. More information on this can be found in Sean Harmer's blog post.

Miscellaneous

For Qt Network, we have added a HTTP/2 configuration API as well as network connectivity monitoring, which should let you achieve more stable connections. At the same time, we have updated Qt WebEngine to be based on Chromium 77 and added a new API for the control of the QWebEnginePage life-cycle

If you want to know more, our Wiki contains a complete list of changes in Qt 5.14. Have a look!

And finally...

I’d like to thank everybody who has contributed to making Qt 5.14 possible. It means a lot! If you're enjoying the Qt World Summit talks I've linked throughout the article, you can find the rest of the presentations here.

But now, please go ahead and download Qt 5.14 from your Qt Account or qt.io/download and join the upcoming live webinar with Live Q&A with Tuukka Turunen and myself.

Meet Qt 5.14, Europe / Asia - Jan 22, 2020       Meet Qt 5.14, Americas - Jan 22, 2020

Blog Topics:

Comments