Qt 5.9 | What's New in Qt 5.8

Qt 5.9.9 Reference Documentation

# What's New in Qt 5.8

## New Features in Qt 5.8

### Qt Core Module

- Added at(), operator[], mid(), right(), and left() functions to QLatin1String.

### Qt GUI Module

- Added uniqueId() and rotation() to QTouchEvent.
- Added support for dithering when converting to all QImage formats.
- Made the QOpenGLTextureBlitter API public; used particularly in Qt Wayland.
- Added capHeight() to QFontMetrics, QFontMetricsF, and QRawFont.
- Added selection handles on Android, with an edit menu for copy and paste.

### Qt Quick Module

- Refactored the Qt Quick scene graph to remove its OpenGL dependency, enabling backends based on other graphics APIs such as Vulkan or Direct3D.
- Integrated the software renderer (previously known as the Qt Quick 2D Renderer) for Qt Quick as a proper scene graph backend.
- Implemented support for partial updates in the software renderer.
- Added an experimental Direct3D 12 backend.
- Implemented caching of code and data structures generated from `.qml` and `.js` files to disk, reducing start-up time and memory consumption. The resulting `.qmlc` and `.jsc` cache files are memory mapped.
- Cleaned up touch and mouse event delivery, and added a new internal class `QQuickPointerEvent` for this purpose.

### Qt Quick Controls 2 Module

- Added new QML types: Dialog, DialogButtonBox, MenuSeparator, RoundButton, and ToolSeparator.
- Added ripple effects to the Material style.
- Added hover effects to Material and Universal styles
- Added a System theme to Material and Universal styles
- Added new experimental platform QML types: `MenuBar`, `Menu`, `SystemTrayIcon`, `ColorDialog`, `FontDialog`, `MessageDialog`, `FileDialog`, and `FolderDialog`.

### Qt WebEngine Module

- Based on Chromium 53.
- Updated requirements to MSVC 2015 Update 2 or later on Windows.
- Added view-source scheme support.
- Added support for spellchecking with custom .bdic files.
- Made tooltips (HTML5 global tile attribute) visible.
- Added support for metadata (`@include`, `@exclude`, `@match`, `@name`, and `@run-at`) in user scripts.
- QML: Enabled the use of custom dialogs and context menus.
- QML: on eglfs, took the built-in dialogs based on Qt Quick Controls 2 into use.
- Added support for printing.
- Added a setting to enable printing of CSS backgrounds.

### Qt Bluetooth Module

- Added Bluetooth Low Energy Peripheral support on macOS, iOS, and WinRT.

### Qt Multimedia Module

- Added QAudio::convertVolume() and a matching QML method to convert audio volumes from one scale to another; for example, from logarithmic to linear scale.
- Added support for rendering YUV 4:2:2 (YUYV, UYVY) video frames to VideoOutput QML type.

### Qt Network Module

- Added support for TLS-PSK ciphersuites on server side.
- Added support for configurable Diffie-Hellman parameters.
- Added support for HTTP/2 in Network Access Manager.

### Qt WebSockets Module

- Added support for TLS-PSK ciphersuites on client and server side.

### Qt Charts Module

- Added a candlestick chart type.

### Qt 3D Module

- Focused on maturation: Bug fixes, improving performance and test coverage.
- Added a paint to texture feature using QPainter.
- Added optional support for issuing commands to Qt3D aspects (for example, from a profiler).

### Embedded Platforms

- Enhanced multi-screen capabilities and configurability with eglfs when running on KMS/DRM, both with GBM and EGLDevice/Stream.
- Added support for 90 and 180 degrees rotation of software-rendered content (QWidget) in eglfs.

### Configurability (Qt Lite Project)

- Qt 5.8 comes with a rewritten configuration system that allows for easy customization of Qt builds. The main focus of this feature is for the Device Creation, but it can also be used to tailor a Qt build for mobile or desktop platforms. The new configuration system allows removing individual pieces of functionality and APIs from Qt, creating a more lightweight set of libraries for deployment.

## New Modules

- Qt Wayland Compositor
  - Provides a framework to develop a Wayland compositor.
- Qt SCXML
  - Enables static and runtime integration of SCXML models into Qt code.
- Qt Serial Bus
  - Provides access to various industrial serial buses and protocols, such as CAN and ModBus.

These modules were previously released as technology previews, and are now fully supported Qt add-on modules.

## Technology Preview Modules

- Qt Gamepad
  - Enables Qt gaming applications to respond to gamepad input.
- 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.
- Qt Network Authorization
  - Online authorization support with OAuth protocol, versions 1 and 2.

## Deprecated Functionality

- Qt Script

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

## Removed Functionality

- Qt Quick 2D Renderer (functionality has been merged into Qt Quick).

## List of API Changes

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

- New Classes and Functions in Qt 5.8
- Obsolete Classes

## Additions to Other Qt 5 Releases

- What's New in Qt 5.7
- What's New in Qt 5.6
- What's New in Qt 5.5
- What's New in Qt 5.4
- What's New in Qt 5.3
- What's New in Qt 5.2
- What's New in Qt 5.1
- What's New in Qt 5.0