What's New in Qt 5.7
New Modules
The Qt Quick Controls 2 module that was previously available as a technology preview is now a fully supported module, providing the following features:
- A new light-weight set of embedded and mobile-oriented controls.
- Based on a flexible template system that enables rapid development of entire custom styles and user experiences.
- Built-in styles:
- Default style - a simple and minimal all-round style that offers maximum performance.
- Material style - a style based on the Google Material Design Guidelines.
- Universal style - a style based on the Microsoft Universal Design Guidelines.
- Can be mixed with Qt Quick Controls 1.0, but the APIs are not compatible.
The following modules that were previously commercial-only, are now available under GPLv3 license for the open source users:
- Qt Quick 2D Renderer
- Enables running Qt Quick applications on hardware without OpenGL.
- Qt Charts
- Provides ready to use controls for depicting different types of 2D charts and graphs.
- Qt Data Visualization
- Enables visualizing data using 3D charts and graphs.
- Qt Purchasing
- Provides API to support in-app purchasing use cases with Google Play and Apple Store.
In addition, the following new modules are available as technology preview releases, enabling Qt users to provide feedback:
- Qt Gamepad
- Enables Qt gaming applications to respond to gamepad input.
- Qt SCXML
- Enables static and runtime integration of SCXML models into Qt code.
New Features in Qt 5.7
Qt 3D Module
- Added support for Compute Shaders on supported hardware.
- Added support for loading multi-image DDS and KTX textures including cubemaps, mip chains, and array textures.
- Improved support for compressed texture formats.
- Made Render surface explicit.
- Extended Input API and support for device plugins.
- Improved picking support.
Qt Core Module
- Added
qAsConst
function to help using non-const Qt containers in C++11 range for loops. - Enabled Qt event dispatchers to use the
poll()
function on Unix now, making it possible for applications to have file descriptors greater than 1024. - Added support for converting a floating point to its shortest and exact string form, without having to pre-calculate the number of digits.
- Improved C++11 support by using
std::atomic
as backend for QAtomic classes and adding QTypeInfo forchar16_t
andchar32_t
. - Added QIODevice support for multi-streaming.
- Enabled QPluginLoader to work even if
QT_NO_LIBRARY
is set (for example, linking against a static libc).
Qt Canvas3D Module
- Upgraded the three.js 3rd party library.
Qt GUI Module
- Optimized QImage smooth scaling for NEON.
- Optimized the OpenGL function wrappers for speed and code size. The QtGui library size has been significantly reduced due to a massive reduction in symbols.
Qt Multimedia Module
- Added support for tvOS.
- Extended QML playlist API.
Qt Platform Abstraction (QPA)
- Added support for NVIDIA DRIVE CX boards (Tegra X1, AArch64).
- Improved support for theming with eglfs.
- Enabled QMenuBar to use the unified D-Bus AppMenu menubar on supported X11-based desktop environments such as Ubuntu Unity.
- Added support for creating Android services.
Qt QML Module
- Added JIT support for WinRT on x86 and x64.
- Enabled JIT for 64-bit ARM Linux platforms.
- Enabled all debug services to work with QJSEngine (instead of QQmlEngine), which allows non-QML JavaScript debugging or profiling.
- Added support for debugging multiple QJSEngine instances at the same time.
Qt Quick Module
- Added support for all subclasses of QQuickWindow by the inspector service, which makes Qt Creator's inspection feature useful.
Qt WebEngine Module
- Upgraded to Chromium 49 release.
- Added support for drag and drop, and printing to PDF.
- Added tab notification for audio being played.
- Added support for playing DRM-protected HTML5 video using Widevine Pepper plugin.
- Added API for evaluating JavaScript or installing QWebchannel in secure and isolated JavaScript worlds.
- Improved support for custom context menus.
Qt Widgets Module
- Enabled QTabBar to delegate placement of tab scroll buttons to the style.
- Enabled Qt Style Sheets to optionally let widgets inherit font and palette from their parents.
Removed Functionality
- Qt Enginio
Deprecated Functionality
- Qt Script
Deprecated modules are still included in Qt 5.7, but are considered for removal in future releases.
List of API Changes
The pages below contain a list of API changes in Qt 5.7: