What's New in Qt 5.9

Qt 5.9 is a long-term support (LTS) release.

New Features in Qt 5.9

Qt Core Module

  • Added the qfloat16 f and qfloat16 &f overload functions to the QDataStream class for writing a floating point number to the stream and reading it from the stream.
  • Made the QProcessEnvironment class available on iOS, tvOS, watchOS, and VxWorks.
  • QRegularExpression now requires the PCRE2 library version 10.20, or later. Support for the PCRE1 library was dropped. A copy of PCRE2 is shipped with Qt and will automatically be used on the platforms that lack it.
  • Added the QOperatingSystemVersion class to provide convenient access to the operating system and version.

Qt GUI Module

Qt Multimedia Module

Added the following QML properties:

Qt Network Module

Qt QML Module

  • Added support for ahead-of-time generation of QML type caches.

Qt Quick Module

  • Enabled caching OpenGL shader program binaries used by the Qt GUI module (QPainter's GL paint engine) and the Qt Quick scenegraph on disk to improve application-startup and view-initialization times.
  • Added an OpenVG backend for Qt Quick.
  • Enabled making window-screen associations directly from QML by using Window.screen and Qt.application.screens. This enables creating multi-screen aware applications for desktop and embedded without involving C++ code.
  • Added a way to query information about the font actually used to render a Text type.
  • Added an image provider that can share decoded image data and memory between processes.

Qt Quick Controls 2 Module

Qt 3D Module

  • Added rendering Qt Quick 2 scenes to a texture and interacting with them within a 3D world.
  • Added a Technical Preview of a new animation subsystem that enables non-blocking, keyframe animations on the threadpool and exporting from animations from Blender.
  • Added Physics Based Rendering (PBR) material (QMetalRoughMaterial and QTexturedMetalRoughMaterial) to Qt3DExtras for improved appearance when used with environment maps.
  • Added 3D text support to Qt3DExtras.
  • Added the LevelOfDetail type to control the representation of an entity based on distance from the observer or size on the screen. It comes with a convenience loader class that loads different QML files.
  • Made the Mesh type plugin based. It comes with plugins for the Wavefront OBJ, PLY and FBX formats and makes it easy to add other formats.
  • Added distance field based 2D textured text that can be freely rotated but is based on planar geometry.

Qt Bluetooth Module

  • Added Classic Bluetooth support for WinRT.
  • Added Bluetooth LE Peripheral support for Android.

Qt Charts Module

  • Added support for minor grid lines for logarithmic axes.
  • Added options for legend marker shapes to QLegend::MarkerShape.
  • Added support for adding more than one bar series to a chart.

Qt Location Module

  • Added support for rotating and tilting maps.
  • Added touch gestures for rotating and tilting maps.
  • Improved support for stacking multiple Map types.
  • Added the MapCopyrightNotice type to flexibly position the copyrights of multiple map elements on top.
  • Enabled styling the HTML copyright using CSS.
  • Added support for handing the rendering of map items to the plugin.
  • Added the MapboxGL plugin that is based on the mapbox-gl-native mapping engine.
  • Added the Map::fitViewportToVisibleMapItems() method to only consider visible items when fitting the viewport.
  • Added the MapItemGroup type to combine multiple map items in a separate QML file.
  • Added the Map.fieldOfView property to control the camera's field of view when the map is tilted.
  • Added the MapParameter type to expose and control plugin-specific runtime functionality.

Qt NFC Module

  • Enabled using NFC when running as an Android service.
  • Added support for communicating with ISO-DEP, NFC-A, NFC-B, NFC-F, and NFC-V tags or smartcards, such as the German eID card, using QNearFieldTarget::sendCommand() on Android.

Qt SerialBus Module

Qt Virtual Keyboard Module

  • Added support for selection handles for the dedicated (desktop) keyboard.
  • Changed the behavior of the shift handler to only activate caps lock if the shift key is double-clicked.
  • Added support for external keyboard layouts, which allows overriding and exclusion of the built-in keyboard layouts.
  • Added a language selection popup for faster selection of the input language.
  • Added support for the automatic selection of the only remaining word in the suggestion list.
  • Made the word candidate list automatically hidden when inactive.
  • Added full screen input mode.

Qt WebEngine Module

  • Based on Chromium 56.
  • Switched internally to the new Chromium build-system GN.
  • Added loading with HTTP POST.
  • Added support for user scripts with QQuickWebEngineProfiles and for using QQuickWebEngineUserScripts from C++.
  • DownloadItems now get a reason when they are interrupted or fail.

Qt WebSockets Module

  • Added support for handling external QTcpSocket objects.

Embedded Platforms

  • Added experimental DRM dumb buffer support to the linuxfb platform plugin, to help devices that do not support the deprecated fbdev model (or have problems with fbdev emulation).
  • Added support for filtering and prediction of touch events to the evdevtouch plugin.

New Modules

  • Qt Gamepad - Enables Qt gaming applications to respond to gamepad input.

This module was previously released as a technology preview and is now a fully supported Qt add-on module.

Technology Preview Modules

  • Qt Network Authorization - Online authorization support with OAuth protocol, versions 1 and 2.
  • Qt Remote Objects - Sharing QObject interfaces (signals, slots, and properties) between processes or devices,
  • Qt Speech - Text to speech and speech recognition functionality. Currently only the text to speech features are released. Includes backends for several speech synthesizers on Windows, Linux, macOS, and Android.

Platform Changes

  • Removed support for WinRT on Windows 8.1.
  • Debug builds on GCC platforms now use -Og optimizations by default. This can be disabled with the configure flag -no-optimize-debug.

Deprecated Functionality

  • Qt Script

Deprecated modules are still included in Qt 5.9, but are considered for removal in future releases.

List of API Changes

The pages below contain a list of API changes in Qt 5.9:

Additions to Other Qt 5 Releases

© 2023 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.