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 for char16_t and char32_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:

Additions to Other Qt 5 Releases

© 2022 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.