What's New in Qt 5.5 | Qt 5.12

- Qt 5.12
- What's New in Qt 5.5
- Qt 5.12.9 Reference Documentation

# What's New in Qt 5.5

## New Modules

- Qt 3D
  - Included as a technology preview.
  - C++ and QML APIs for easy inclusion of 3D graphics into Qt applications.
  - Supports OpenGL versions 2, 3 and 4, and OpenGL ES versions 2 and 3.
  - Data-driven renderer configuration.
  - Extensible beyond 3D graphics. Provides a full Entity Component System framework.
  - Supported platforms:
    - Windows (not RT)
    - OS X
    - Linux/xcb
    - Android
    - Embedded Linux with ES 2
    - (Support for QNX and iOS planned)
- Qt Location
  - Included as a technology preview.
  - Adds mapping, (reverse-)geocoding, routing and place features to Qt.

## New Features in Qt 5.5

### Qt Bluetooth Module

- Classic Bluetooth support added for macOS.
- Bluetooth Low Energy support added for Android, iOS and macOS

### Qt Core Module

- Added a possibility to have Q_PROPERTY and Q_INVOKABLE within a Q_GADGET, with a way to query the QMetaObject of such gadgets using the QMetaType system.
- Added Q_ENUM to replace Q_ENUMS, which allows to get a QMetaEnum at compile time using QMetaEnum::fromType<T>. Such enums are now automatically registered as metatypes, and can be converted to strings within QVariant, or printed as string by qDebug().

### Qt GUI Module

- All Windows packages are now built with `-opengl dynamic`. No OpenGL-only or ANGLE-only builds are provided anymore.
- On Windows, the OpenGL implementation to use can now be configured based on the GPU vendor and driver versions using JSON configuration files. This allows shipping fine-grained card and driver blacklists with the applications when necessary.
- QImage: Added 8-bit alpha map and grayscale formats.

### Qt Multimedia Module

- Added GStreamer 1.0 support. Note that the default is still 0.10. Version 1.0 support can be enabled by configuring Qt with `-gstreamer 1.0`.
- Added a new video filtering framework to integrate frameworks like OpenCV or compute APIs such as OpenCL or CUDA with VideoOutput elements.
- Added a new API to control camera viewfinder settings.
- Improved camera support on iOS (focus, zoom, exposure, image and viewfinder settings).
- The QML MediaPlayer is now rendered in an OpenGL texture on iOS. This means VideoOutput supports advanced transformation and shader effects, and doesn't have to be always on top of other items anymore.

### Qt NFC Module

- Ported to Linux using Neard v0.14 or later.

### Qt Network Module

- Added a new SSL backend for iOS and OS X, based on Secure Transport.
- Added support for libproxy.
- Added support for TLS PSK ciphersuites.
- Added support for elliptic curve certificates.
- Added ability to select specific curves when using elliptic curve ciphersuites.

### Qt Platform Abstraction (QPA)

- Added support for Raspberry Pi 2.
- On supported desktops, the xcb plugin now uses the D-Bus based `org.kde.StatusNotifier` protocol for system tray icons, and `org.freedesktop.Notifications` for notifications.
- Added a KMS/DRM backend for EGLFS. This replaces the now deprecated KMS platform plugin. It allows running applications with eglfs on the console on systems with Mesa and devices that come with DRM support.
- Added a plugin-based backend mechanism for EGLFS, in addition to the existing, statically compiled-in solution. Most compiled-in hooks are converted to be dynamically loaded plugins that are built based on configure time tests. This reduces the reliance on the device makespecs for Raspberry Pi, i.MX6 and Mali-based devices.
- Input handling is now unified for EGLFS and LinuxFB, avoiding the need to launch and configure LinuxFB-based applications differently compared when using EGLFS.
- tslib is now better integrated with EGLFS and LinuxFB to provide support for resistive single-touch touchscreens often used in industrial environments.
- xcb is refactored to move GLX and EGL support into plugins.
- Added a TUIO Touch plugin for receiving remote touch events via UDP.
- Added a libinput plugin.
- iOS: Added support into QFileDialog for browsing system photos using a native image picker dialog. Selected photos can be loaded using QFile.

### Qt QML Module

- Added a possibility to conveniently expose custom C++ value types into the JavaScript environment of QML and QJSEngine.
- Added support for JavaScript typed arrays.
- Various performance improvements, notably QJSValue.
- Added a convenience qJsEngine(QObject*) getter function.

### Qt Quick Module

- Windows now defaults to the threaded Qt Quick render loop when using desktop OpenGL (`opengl32.dll`).
- Added support for threaded rendering in QQuickRenderControl.
- Improved behavior of Flickable on OS X trackpads using pixel deltas from native gestures.
- Added support for PinchArea to handle native pinch gestures when the OS provides them (so far, only on OS X).
- Added a smart zoom signal to PinchArea to react to that gesture on an OS X trackpad.
- Added a scrollGestureEnabled property to MouseArea to control whether native scroll gestures from the OS will be handled by the wheel signal handler.

### Qt Quick Controls Module

- Qt Quick Extras, formerly Qt Quick Enterprise Controls, was added under the QtQuick.Extras import.
- Added a TreeView control for QAbstractItemModel-derived models. Supports QItemSelectionModel selection.

### Qt WebEngine Module

- Added WebEngineProfile for controlling storage and cache paths and related policies.
- Added support for a JavaScript Geolocation API with Qt Location as a backend.
- Added API for managing downloading of files.
- Added API for controlling cache and cookie paths and policy.
- Added API for WebEngine settings.
- Various experimental QML APIs promoted to public.
- Added QtWebChannel integration API over Chromium IPC.
- Updated Chromium snapshot to version 40.

### Qt WebView Module

- Added native implementations for OS X.
- Added API for running JavaScript (Requires API 19+ on Android).
- Added API for setting the HTML content.
- Added API for load status notifications.

## Deprecated Functionality

The following modules are deprecated in Qt 5.5:

- Qt WebKit
- Qt Declarative (Qt Quick 1)
- Qt Script

These modules are still included in Qt 5.5, but are considered for removal in future releases.

## List of API Changes

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

- New Classes and Functions in Qt 5.5
- Obsolete Classes

## Additions to Other Qt 5 Releases

- 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