New Features in Qt 5.7

From Qt Wiki
Revision as of 12:17, 22 November 2016 by EdwardWelbourne (talk | contribs) (Add needed categories.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

C++11 Support Required from the compiler

Qt has enabled usage of C++11 in Qt applications for a long time, but with Qt 5.7 we are also enabling use of C++11 in the Qt modules. Therefore Qt 5.7 requires C++11 support from the compiler, and has removed support from older compilers not providing adequate C++11 support.

New Features (within existing modules)

  • Qt Core
    • Added qAsConst function to help using non-const Qt containers in C++11 range for loops
    • Qt event dispatchers use the poll() function on Unix now, making it possible for applications to have file descriptors > 1024
    • Added the ability to convert a floating point to its shortest, exact string form, without having to pre-calculate how many digits that is; QVariant uses this
    • Many clean-ups related to C++11, including using std::atomic as backend for QAtomic classes and adding QTypeInfo for char16_t and char32_t
    • QIODevice now supports multistreaming
    • QPluginLoader now works even if QT_NO_LIBRARY is set (e.g., linking against a static libc)
  • Qt GUI
    • QImage smooth scale optimized for NEON.
    • Optimized the OpenGL function wrappers for speed and code size. QtGui library size has been significantly reduced due to a massive reduction in symbols.
    • QIcon::fromTheme can now use GTK+ icon theme caches for faster icon lookup
  • Qt Widgets
    • QTabBar now delegates placement of tab scroll buttons to the style.
    • Qt Style Sheets can now optionally let widgets inherit font and palette from their parents.
  • Qt WebEngine
    • Based on Chromium 49
    • Drag'n'Drop
    • Printing to PDF
    • Audio played in tab notification.
    • Support for DRM-protected HTML5 video using Widevine pepper plugin
    • API for evaluating javascript or installing qwebchannel in secure isolated javascript worlds
    • Data to make better custom context menus
    • Compile time switch for AppStore compatibility on OS X
  • Qt QML
    • Added JIT support for WinRT on x86 and x64.
    • Enabled JIT for 64-bit ARM Linux platforms.
    • All debug services now work with QJSEngine rather than QQmlEngine, which allows for non-QML JavaScript debugging or profiling.
    • The JavaScript debug service now supports debugging of multiple QJSEngine instances at the same time.
    • The profiler service can generate much larger traces without running out of memory, and will take much less time to do so now.
    • Custom connectors for debugging and profiling can be loaded with QQmlDebuggingEnabler::startDebugConnector() now.
    • The JavaScript debug service can now evaluate expressions without the QML engine being paused in a breakpoint.
  • Qt Quick
    • The inspector service now supports all subclasses of QQuickWindow, which makes Qt Creator's inspection feature useful.
  • Embedded platforms
    • Added support for NVIDIA DRIVE CX boards (Tegra X1, AArch64)
    • Added support for the Raspberry Pi 3 (32-bit mode)
    • Added support for NXP i.MX7-based devices (no GPU; uses linuxfb and the Qt Quick 2D Renderer)
    • Improved theming support with eglfs
  • Desktop platforms
    • X11: QMenuBar uses the unified D-Bus AppMenu menubar when the desktop environment supports it (e.g. Ubuntu Unity)
  • Mobile platforms
    • Android: Qt can now be used to easily create Android Services.
  • Qt Canvas 3D
    • New version of three.js
  • Qt NFC
    • API ported to Android.
  • Qt Multimedia
    • Added support for tvOS.
    • Extended QML playlist API.
  • Qt Bluetooth
    • Technical preview for Qt Bluetooth Low Energy peripheral role feature (Bluez only)
  • Qt Sensors
    • Added iio-sensor-proxy backend for Linux. It provides light, orientation, and compass sensors.

New Modules

  • Qt 3D
    • Support for Compute Shaders on supported hardware
    • Support for loading multi-image DDS and KTX textures including cubemaps, mip chains, array textures
    • Improved support for compressed texture formats
    • Render surface made explicit - will later allow for multiple renders of the same scene to different surfaces and other use cases
    • Extended Input API and support for device plugins
    • Picking support improved
  • Qt Quick Controls 2
    • 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 the 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
  • Qt Charts
    • Previously commercial-only Qt Charts module is now included in Qt under also GPLv3 license for open source users
  • Qt Data Visualization
    • Previously commercial-only Qt Data Visualization module is now included in Qt under also GPLv3 license for open source users
  • Qt Virtual Keyboard
    • Previously commercial-only Qt Virtual Keyboard module is now included in Qt under also GPLv3 license for open source users
  • Qt Purchasing
    • Previously commercial-only Qt Purchasing module is now included in Qt under also LGPLv3 and GPLv3 license for open source users
  • Qt Quick 2D Renderer
    • Previously commercial-only Qt Quick 2D Renderer module is now included in Qt under also GPLv3 license for open source users

Technology Preview Modules

  • Qt Wayland Compositor
    • Pure QML API
    • Improved C++ API with added convenience
    • New convenient API for making extensions and using them from both QML and C++
  • Qt SCXML
    • Completely new module for C++ and QML
    • Static and runtime integration of SCXML models into Qt code
  • Qt Gamepad
    • New module to process input from gamepads in C++ and QML applications.
    • Supports Windows (XInput), Linux (evdev), Android, iOS.
  • Qt Serial Bus
    • New module for C++
    • Supports Modbus and CAN bus

Deprecated Modules

The following modules are part of Qt 5.7 release, but deprecated and considered for removal in subsequent releases of Qt:

  • Qt Script

Removed Modules

With Qt 5.7 the following modules are no longer part of the final release packages:

  • Qt Enginio


  • Qt 5.7 has deprecated configurations that do not provide adequate C++11 support. For details, please see Qt 5.7 Tools and Versions in the wiki.
  • Mobile platforms: Minimum required versions upgraded to iOS 7 and Android 4.1

Release Information [edit]
Qt Version Overview Tools and Versions New Features Changes Known Issues
Qt 5.0 Qt 5.0.0Qt 5.0.1 Release New Features in Qt 5.0 Qt 5.0 Changes Qt 5.0.0 Beta 1Qt 5.0.0 Beta 2Qt 5.0.0 RC 1Qt 5.0.0 RC 2
Qt 5.0.0Qt 5.0.1Qt 5.0.2 Known Issues
Qt 5.1 Qt 5.1 Release New Features in Qt 5.1 Qt 5.1.0 Change Files Qt 5.1.0 Beta 1Qt 5.1.0 RC 1
Qt 5.1.0Qt 5.1.1 Known Issues
Qt 5.2 Qt 5.2 Release New Features in Qt 5.2 Qt 5.2.0Qt 5.2.1 Change Files Qt 5.2.0 Beta 1Qt 5.2.0 RC 1
Qt 5.2.0Qt 5.2.1 Known Issues
Qt 5.3 Qt 5.3 Release Qt 5.3 Tools and Versions New Features in Qt 5.3 Qt 5.3.0Qt 5.3.1Qt 5.3.2 Change Files Qt 5.3.0 Beta 1Qt 5.3.0 RC 1
Qt 5.3.0Qt 5.3.1Qt 5.3.2 Known Issues
Qt 5.4 Qt 5.4 Release Qt 5.4 Tools and Versions New Features in Qt 5.4 Qt 5.4.0Qt 5.4.1Qt 5.4.2 Change Files Qt 5.4.0Qt 5.4.1Qt 5.4.2 Known Issues
Qt 5.5 Qt 5.5 Release Qt 5.5 Tools and Versions New Features in Qt 5.5 Qt 5.5.0Qt 5.5.1 Change Files Qt 5.5.0Qt 5.5.1 Known Issues
Qt 5.6 Qt 5.6 Release Qt 5.6 Tools and Versions New Features in Qt 5.6 Qt 5.6.0Qt 5.6.1Qt 5.6.2Qt 5.6.3 Change Files Qt 5.6.0Qt 5.6.1Qt 5.6.2Qt 5.6.3 Known Issues
Qt 5.7 Qt 5.7 Release Qt 5.7 Tools and Versions New Features in Qt 5.7 Qt 5.7.0Qt 5.7.1 Change Files Qt 5.7.0Qt 5.7.1 Known Issues
Qt 5.8 Qt 5.8 Release Qt 5.8 Tools and Versions New Features in Qt 5.8 Qt 5.8.0 Change Files Qt 5.8.0 Known Issues
Qt 5.9 Qt 5.9 Release Qt 5.9 Tools and Versions New Features in Qt 5.9 Qt 5.9.0Qt 5.9.1Qt 5.9.2Qt 5.9.3Qt 5.9.4Qt 5.9.5Qt 5.9.6 Change FilesQt 5.9.7 Change FilesQt 5.9.8 Change Files Qt 5.9.0Qt 5.9.1Qt 5.9.2Qt 5.9.3Qt 5.9.4Qt 5.9.5Qt 5.9.6 Known IssuesQt 5.9.7 Known IssuesQt 5.9.8 Known Issues
Qt 5.10 Qt 5.10 Release Qt 5.10 Tools and Versions New Features in Qt 5.10 Qt 5.10.0Qt 5.10.1 Change Files Qt 5.10.0Qt 5.10.1 Known Issues
Qt 5.11 Qt 5.11 Release Qt 5.11 Tools and Versions New Features in Qt 5.11 Qt 5.11.0Qt 5.11.1Qt 5.11.2 Change FilesQt 5.11.3 Change Files Qt 5.11.0Qt 5.11.1Qt 5.11.2 Known IssuesQt 5.11.3 Known Issues
Qt 5.12 Qt 5.12 Release Qt 5.12 Tools and Versions New Features in Qt 5.12 Qt 5.12.0 Change FilesQt 5.12.1 Change FilesQt 5.12.2 Change FilesQt 5.12.3 Change Files Qt 5.12.0 Known IssuesQt 5.12.1 Known IssuesQt 5.12.2 Known IssuesQt 5.12.3 Known Issues
Qt 5.13 Qt 5.13 Release Qt 5.13 Tools and Versions New Features in Qt 5.13 Qt 5.13.0 Change Files Qt 5.13.0 Known Issues
Qt 5.14 Qt 5.14 Release Qt 5.14 Tools and Versions New Features in Qt 5.14 Qt 5.14.0 Change Files Qt 5.14.0 Known Issues