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▲
-
Made the QPainter class' GL engine functional with core profile OpenGL contexts.
-
Added the QImage::reinterpretAsFormat() function to change the image format without changing the data.
-
Added support for compute shaders in QOpenGLShader::ShaderType and QOpenGLShaderProgram also with OpenGL ES 3.1 and newer.
-
Enabled stem-darkening and gamma-correction on OpenType fonts on platforms that use FreeType, if supported.
Qt Multimedia Module▲
Added the following QML properties:
-
MediaPlayer.notifyInterval (also for the Audio and Video types)
Qt Network Module▲
-
Added the QNetworkAccessManager::addStrictTransportSecurityHosts() function to support HSTS (HTTP Strict Transport Security) policies.
-
Added the QNetworkAccessManager::redirectPolicy() function and the QNetworkRequest::RedirectPolicy enumeration to determine whether the Network Access API should automatically follow a HTTP redirect response.
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▲
-
Introduced new QML types: DelayButton, ScrollView.
-
Added multi-touch support.
-
Made the ComboBox type editable.
-
Added the interactive property for making a Drawer type non-interactive and persistent.
-
Enabled live value updates (by default) for the Slider, RangeSlider, and Dial types.
-
Added dedicated notification signals for user interaction: AbstractButton::toggled(), Slider::moved(), SpinBox::valueModified(), and so on.
-
Enabled incremental discrete scrolling with the ScrollBar type.
-
Added enabling and disabling the swipe for the SwipeDelegate type. In addition, the swipe can now be opened programmatically.
-
Added support for the vertical orientation to the SwipeView.orientation property.
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▲
-
Added the CAN FD Bitrate Switch (BRS) and Error State Indicator (ESI) flags to QCanBusFrame (QCanBusFrame::hasBitrateSwitch() and QCanBusFrame::hasErrorStateIndicator()).
-
Added QCanBusDeviceInfo for information about available CAN interfaces.
-
Added a plugin to support SYS-TEC electronic CAN adapters on Windows.
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: