Difference between revisions of "New Features in Qt 5.8"

From Qt Wiki
Jump to: navigation, search
m
(Fix module name: "Qt Network Authentication" -> "Qt Network Authorization")
 
(30 intermediate revisions by 18 users not shown)
Line 1: Line 1:
'''NOTE: Work in Progress Until the Alpha Release'''
+
[[Category:Developing with Qt::Qt 5]]
 +
[[Category:Release]]
 
'''New Features (within existing modules)'''
 
'''New Features (within existing modules)'''
 
* Qt Core
 
* Qt Core
 
** Added at(), operator[], mid(), right() and left() to QLatin1String  
 
** Added at(), operator[], mid(), right() and left() to QLatin1String  
 
* Qt GUI
 
* Qt GUI
** QTouchEvent no have uniqueId and rotation
+
** QTouchEvent now has uniqueId and rotation
 
** Support for dithering when converting to all QImage formats
 
** Support for dithering when converting to all QImage formats
 
** Previously private QOpenGLTextureBlitter API is made public, to help QtWayland in particular
 
** Previously private QOpenGLTextureBlitter API is made public, to help QtWayland in particular
 +
** Added capHeight() to QFontMetrics, QFontMetricsF, and QRawFont
 +
** Selection handles on Android,  with edit menu for copy/paste)
 +
** Added applicationDisplayNameChanged() signal to QGuiApplication
 
* Qt Quick
 
* Qt Quick
 
** Refactored the Qt Quick scene graph to remove its OpenGL dependency and make it possible to create rendering backends based on other graphics APIs, such as Vulkan or Direct3D.  
 
** Refactored the Qt Quick scene graph to remove its OpenGL dependency and make it possible to create rendering backends based on other graphics APIs, such as Vulkan or Direct3D.  
Line 15: Line 19:
 
** Cleaned up touch and mouse event delivery and added a new internal class QQuickPointerEvent which is used for that purpose. This is the foundation for further improvements with regards to input event handling, but does not affect any code using Qt Quick yet.
 
** Cleaned up touch and mouse event delivery and added a new internal class QQuickPointerEvent which is used for that purpose. This is the foundation for further improvements with regards to input event handling, but does not affect any code using Qt Quick yet.
 
* Qt Quick Controls 2
 
* Qt Quick Controls 2
** Added new QML types: Dialog, DialogButtonBox, MenuSeparator and ToolSeparator
+
** Added new QML types: Dialog, DialogButtonBox, MenuSeparator, RoundButton, and ToolSeparator
 
** Added ripple effects to the Material style
 
** Added ripple effects to the Material style
 
** Added hover effects to the Material and Universal styles
 
** Added hover effects to the Material and Universal styles
Line 22: Line 26:
 
* Qt Widgets
 
* Qt Widgets
 
* Qt WebEngine
 
* Qt WebEngine
** Based on Chromium 51+ (probably 53)
+
** Based on Chromium 53
 +
** Windows: Requires MSVC 2015 Update 2 or later
 
** view-source: scheme is supported
 
** view-source: scheme is supported
** Spellchecking with custom .bdic files
+
** Spellchecking with Hunspell
** Tooltips (HTML5 global tile attribute) are shown
+
** Tooltips (HTML5 global title attribute) are now also supported in the QML API.
 
** User scripts now support metadata (@include, @exclude, @match)
 
** User scripts now support metadata (@include, @exclude, @match)
 
** Qt WebEngine (QML) allows defining custom dialogs / context menu's
 
** Qt WebEngine (QML) allows defining custom dialogs / context menu's
 
** Qt WebEngine (QML) on eglfs uses builtin dialogs based on Qt Quick Controls 2
 
** Qt WebEngine (QML) on eglfs uses builtin dialogs based on Qt Quick Controls 2
 +
** Support for printing
 
** Added setting to enable printing of CSS backgrounds
 
** Added setting to enable printing of CSS backgrounds
** Support for printing
+
** Some chrome: schemes now supported, for instance chrome://gpu
 +
*Qt Location
 +
** One new geoservices plugin, from ESRI
 +
** Added support for retina tiles in osm, mapbox and here plugins
 +
** Mapbox geoservice plugin can now do routing, too
 +
** Osm plugin now supports sourcing tiles from a directory, allowing to ship offline datasets with an application
 +
** Tile cache now support a "unitary" mode, allowing to specify a number of tiles as cache size
 
*Qt Bluetooth
 
*Qt Bluetooth
** Bluetooth Low Energy Peripheral support on OS X and iOS
+
** Bluetooth Low Energy Peripheral support on macOS & iOS
 +
** Bluetooth Low Energy Central support on WinRT
 +
* Qt Multimedia
 +
** Added QAudio::convertVolume() (and matching QML API)  function to convert an audio volume from one scale to another, e.g. logarithmic to linear.
 +
** VideoOutput (QML) now supports rendering YUV 4:2:2 (YUYV, UYVY) video frames.
 +
** GStreamer backend (Unix) now supports video probing on QCamera
 
*Qt Network
 
*Qt Network
 
** Support for TLS PSK ciphersuites on server side
 
** Support for TLS PSK ciphersuites on server side
Line 42: Line 59:
 
** Candlestick chart type added.
 
** Candlestick chart type added.
 
* Qt 3D
 
* Qt 3D
**  
+
** Main focus on maturation (improving performance, bug fixing and improving test coverage)
 +
** Paint to texture using QPainter from Wayland
 +
** Optional support for issuing commands to Qt3D aspects (e.g. from profiler)
 +
** Screenshot frame graph node.
 
* Embedded platforms
 
* Embedded platforms
 
** Enhanced multi-screen capabilities and configurability with eglfs when running on KMS/DRM, both with GBM and EGLDevice/Stream
 
** Enhanced multi-screen capabilities and configurability with eglfs when running on KMS/DRM, both with GBM and EGLDevice/Stream
 
** Added support for 90 or 180 degrees rotation of software-rendered content (QWidget) in eglfs
 
** Added support for 90 or 180 degrees rotation of software-rendered content (QWidget) in eglfs
 +
* VNC support
 +
** Qt 5.8 comes with a new QPA backend that supports VNC. This allows running any Qt application in a mode that will make it possible to connect to it remotely through the VNC protocol.
 +
 +
'''Configurability (Qt Lite project)'''
 +
 +
Qt 5.8 comes with a rewritten configuration system, that allows for easy customisation of your Qt build. 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. The system allows removing individual pieces of functionality and APIs from Qt, thus creating a more lightweight set of libraries for deployment.
  
 
'''New Modules'''
 
'''New Modules'''
Line 51: Line 77:
 
* Qt SCXML
 
* Qt SCXML
 
* Qt Serial Bus
 
* Qt Serial Bus
 +
 +
'''New Platforms'''
 +
* Apple tvOS (technology preview)
 +
* Apple watchOS (technology preview)
  
 
'''Technology Preview Modules'''
 
'''Technology Preview Modules'''
* QtGamepad (TP2)
+
* Qt Gamepad (TP2)
 +
* Qt Speech - A module to make text to speech and speech recognition easy. For Qt 5.8 (and probably even the next few releases) only the text to speech part is released. It has backends for several speech synthesizers on macOS, Android, Windows and Linux currently.
 +
* Qt Network Authorization - currently includes support for OAuth 1 + 2
  
 
'''Deprecated Modules'''
 
'''Deprecated Modules'''
Line 63: Line 95:
 
* Qt Quick 2D Renderer (functionality of the module has been merged into Qt Declarative)
 
* Qt Quick 2D Renderer (functionality of the module has been merged into Qt Declarative)
  
 +
'''Configurations'''
 +
* There are no more separate device and simulator libraries for iOS; they are now combined into a single library (and the same applies for tvOS and watchOS).
 +
* Precompiled headers now supported on iOS.
  
 
{{Release Information}}
 
{{Release Information}}

Latest revision as of 07:06, 26 October 2017

New Features (within existing modules)

  • Qt Core
    • Added at(), operator[], mid(), right() and left() to QLatin1String
  • Qt GUI
    • QTouchEvent now has uniqueId and rotation
    • Support for dithering when converting to all QImage formats
    • Previously private QOpenGLTextureBlitter API is made public, to help QtWayland in particular
    • Added capHeight() to QFontMetrics, QFontMetricsF, and QRawFont
    • Selection handles on Android, with edit menu for copy/paste)
    • Added applicationDisplayNameChanged() signal to QGuiApplication
  • Qt Quick
    • Refactored the Qt Quick scene graph to remove its OpenGL dependency and make it possible to create rendering backends based on other graphics APIs, such as Vulkan or Direct3D.
    • Integrated the software renderer for the Qt Quick scene graph as a proper backend for the scene graph (previously known as the Qt Quick 2D Renderer.)
    • Implemented support for partial updates in the software backend for the scene graph (2D Renderer) to prevent expensive fullscreen updates when only small areas are changing.
    • Added an experimental Direct3D 12 backend
    • Implemented caching of code and data structures generated from .qml/.js files to disk to reduce 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 which is used for that purpose. This is the foundation for further improvements with regards to input event handling, but does not affect any code using Qt Quick yet.
  • Qt Quick Controls 2
    • Added new QML types: Dialog, DialogButtonBox, MenuSeparator, RoundButton, and ToolSeparator
    • Added ripple effects to the Material style
    • Added hover effects to the Material and Universal styles
    • Added a 'System' theme to the Material and Universal styles
    • Added new experimental "platform" QML types: MenuBar, Menu, SystemTrayIcon, ColorDialog, FontDialog, MessageDialog, FileDialog and FolderDialog
  • Qt Widgets
  • Qt WebEngine
    • Based on Chromium 53
    • Windows: Requires MSVC 2015 Update 2 or later
    • view-source: scheme is supported
    • Spellchecking with Hunspell
    • Tooltips (HTML5 global title attribute) are now also supported in the QML API.
    • User scripts now support metadata (@include, @exclude, @match)
    • Qt WebEngine (QML) allows defining custom dialogs / context menu's
    • Qt WebEngine (QML) on eglfs uses builtin dialogs based on Qt Quick Controls 2
    • Support for printing
    • Added setting to enable printing of CSS backgrounds
    • Some chrome: schemes now supported, for instance chrome://gpu
  • Qt Location
    • One new geoservices plugin, from ESRI
    • Added support for retina tiles in osm, mapbox and here plugins
    • Mapbox geoservice plugin can now do routing, too
    • Osm plugin now supports sourcing tiles from a directory, allowing to ship offline datasets with an application
    • Tile cache now support a "unitary" mode, allowing to specify a number of tiles as cache size
  • Qt Bluetooth
    • Bluetooth Low Energy Peripheral support on macOS & iOS
    • Bluetooth Low Energy Central support on WinRT
  • Qt Multimedia
    • Added QAudio::convertVolume() (and matching QML API) function to convert an audio volume from one scale to another, e.g. logarithmic to linear.
    • VideoOutput (QML) now supports rendering YUV 4:2:2 (YUYV, UYVY) video frames.
    • GStreamer backend (Unix) now supports video probing on QCamera
  • Qt Network
    • Support for TLS PSK ciphersuites on server side
    • Support for configurable diffie hellman parameters
    • Support for HTTP/2 in Network Access Manager
  • Qt WebSockets
    • Support for TLS PSK ciphersuites on client and server side
  • Qt Charts
    • Candlestick chart type added.
  • Qt 3D
    • Main focus on maturation (improving performance, bug fixing and improving test coverage)
    • Paint to texture using QPainter from Wayland
    • Optional support for issuing commands to Qt3D aspects (e.g. from profiler)
    • Screenshot frame graph node.
  • 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 or 180 degrees rotation of software-rendered content (QWidget) in eglfs
  • VNC support
    • Qt 5.8 comes with a new QPA backend that supports VNC. This allows running any Qt application in a mode that will make it possible to connect to it remotely through the VNC protocol.

Configurability (Qt Lite project)

Qt 5.8 comes with a rewritten configuration system, that allows for easy customisation of your Qt build. 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. The system allows removing individual pieces of functionality and APIs from Qt, thus creating a more lightweight set of libraries for deployment.

New Modules

  • Qt Wayland Compositor
  • Qt SCXML
  • Qt Serial Bus

New Platforms

  • Apple tvOS (technology preview)
  • Apple watchOS (technology preview)

Technology Preview Modules

  • Qt Gamepad (TP2)
  • Qt Speech - A module to make text to speech and speech recognition easy. For Qt 5.8 (and probably even the next few releases) only the text to speech part is released. It has backends for several speech synthesizers on macOS, Android, Windows and Linux currently.
  • Qt Network Authorization - currently includes support for OAuth 1 + 2

Deprecated Modules

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

  • Qt Script

Removed Modules

  • Qt Quick 2D Renderer (functionality of the module has been merged into Qt Declarative)

Configurations

  • There are no more separate device and simulator libraries for iOS; they are now combined into a single library (and the same applies for tvOS and watchOS).
  • Precompiled headers now supported on iOS.
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 FilesQt 5.12.4 Change Files Qt 5.12.0 Known IssuesQt 5.12.1 Known IssuesQt 5.12.2 Known IssuesQt 5.12.3 Known IssuesQt 5.12.4 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 FilesQt 5.13.1 Change Files Qt 5.13.0 Known IssuesQt 5.13.1 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