New Features in Qt 5.15: Difference between revisions
(Add a general statement about the deprecation of APIs) |
QKelteseth (talk | contribs) (Fix spelling of https://doc-snapshots.qt.io/qt5-5.15/qml-qtlocation-map.html#fitViewportToMapItems-method) |
||
(32 intermediate revisions by 13 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Developing with Qt::Qt 5]] | [[Category:Developing with Qt::Qt 5]] | ||
[[Category:Release]] | [[Category:Release]] | ||
== New Features (within existing modules) == | |||
* Qt 3D | * Qt 3D | ||
** Improved profiling and troubleshooting support | ** Improved profiling and troubleshooting support | ||
Line 9: | Line 7: | ||
** QMouseDevice add updateAxesContinuously property | ** QMouseDevice add updateAxesContinuously property | ||
** OpenGL Renderer is now isolated as a plugin | ** OpenGL Renderer is now isolated as a plugin | ||
* Qt Core | * Qt Core | ||
** QFile::moveToTrash provides a cross platform API for moving files to the trash/recycling bin on Windows, macOS, and Linux desktop (implementing the [https://specifications.freedesktop.org/trash-spec/trashspec-1.0.html freedesktop.org specification]). | ** QFile::moveToTrash provides a cross platform API for moving files to the trash/recycling bin on Windows, macOS, and Linux desktop (implementing the [https://specifications.freedesktop.org/trash-spec/trashspec-1.0.html freedesktop.org specification]). | ||
** QFileInfo::isJunction reports whether a file system entry is a Windows NTFS junction | ** QFileInfo::isJunction reports whether a file system entry is a Windows NTFS junction | ||
** QRunnable's can now be created from std::function without having to subclass QRunnable. | |||
** QThreadPool::start and tryStart can now take std::function and thereby also anonymous lambda functions as arguments. | |||
** Added static template QDebug::toString function, which streams the given object into a QDebug instance that operates on a string, and then returns that string. This is useful for cases where you need the textual representation of an object for debugging, but cannot use operator<<, such as when passing a failure message to QVERIFY2. | |||
* Qt GUI | * Qt GUI | ||
** QColorSpace setters can now operate on invalid color spaces, making it possible to set primaries and transfer function independently. | |||
** Many QImage scaling and conversion methods are now multithreaded. | |||
* Qt Location | * Qt Location | ||
** Updated 3rdparty library earcut. | |||
** Ported Map*ObjectPrivateQSG to the shader-based projection geometries. | |||
** Added optional argument to Map.fitViewportToMapItems. | |||
* Qt Multimedia | * Qt Multimedia | ||
* | ** Deprecated QMediaService and QMediaControl. And all plugin API. | ||
** Introduced reverse playback for GStreamer. | |||
** Introduced rendering to multiple surfaces. | |||
** Introduced QVideoWidget::videoSurface(), QGraphicsVideoItem::videoSurface() and QDeclarativeVideoOutput::videoSurface(). | |||
** Introduced videoOutput property for MediaPlayer QML element. | |||
** Introduced QVideoFrame::image(). | |||
** Added using of notify::zoom and notify::max-zoom for GStreamer Camerabin. | |||
* Qt Network | * Qt Network | ||
** A new session ticket mechanism introduced by TLS 1.3 protocol is now supported by the OpenSSL backend. | |||
** Timeouts for downloads and uploads can be now set for QNetworkRequest and QNetworkAccessManager. | |||
** The minimum supported version of OpenSSL is 1.1. | |||
* Qt QML | * Qt QML | ||
** Introduced inline components (ability to declare multiple QML components in the same file) | |||
** Introduced required properties | |||
** Added a declarative way of registering types to QML | |||
** qmllint now has a better understanding of the code and warns about more deprecated QML features | |||
** Added qmlformat tool which automatically formats any QML file according to the [https://doc.qt.io/qt-5/qml-codingconventions.html QML Coding Conventions]. | ** Added qmlformat tool which automatically formats any QML file according to the [https://doc.qt.io/qt-5/qml-codingconventions.html QML Coding Conventions]. | ||
** Added support for the [https://github.com/tc39/proposal-nullish-coalescing Nullish Coalescing Operator] (??). | ** Added support for the [https://github.com/tc39/proposal-nullish-coalescing Nullish Coalescing Operator] (??). | ||
** Added colorspace property on image nodes, making it possible to read color space and transform images to specific color spaces. | |||
* Qt Quick | * Qt Quick | ||
** Added a PathText type, which can be used together with Qt Quick Shapes to render text as geometry and not based on distance fields or pre-rendered textures. This can be useful for rendering large font sizes which would otherwise consume a lot of texture memory. | ** Added a PathText type, which can be used together with Qt Quick Shapes to render text as geometry and not based on distance fields or pre-rendered textures. This can be useful for rendering large font sizes which would otherwise consume a lot of texture memory. | ||
** Added Image.sourceClipRect to specify a clipping region, to request the image plugin to render a portion of an image source. | ** Added Image.sourceClipRect to specify a clipping region, to request the image plugin to render a portion of an image source. | ||
** Added cursorShape property to pointer handlers. Most pointer handlers (e.g. DragHandler) will change the cursor when the active state is true. HoverHandler will change it when the mouse is hovering over the Item that contains the HoverHandler. | ** Added cursorShape property to pointer handlers. Most pointer handlers (e.g. DragHandler) will change the cursor when the active state is true. HoverHandler will change it when the mouse is hovering over the Item that contains the HoverHandler. | ||
** The opt-in preview of the graphics API independent rendering architecture now supports Metal on iOS as well. | |||
* Qt Quick Controls 2 | * Qt Quick Controls 2 | ||
** Added HorizontalHeaderView and VerticalHeaderView to display header data in a TableView. Support flicking synchronization, and default, fusion, imagine, material, and universal delegate styles. | ** Added HorizontalHeaderView and VerticalHeaderView to display header data in a TableView. Support flicking synchronization, and default, fusion, imagine, material, and universal delegate styles. | ||
** Added selectTextByMouse property to ComboBox. | |||
* Qt SerialBus | * Qt SerialBus | ||
** Added CAN FD support to the VectorCAN plugin. | |||
* Qt Test | * Qt Test | ||
* Qt WebEngine | * Qt WebEngine | ||
** Updated to be based on Chromium 80 | |||
** Switched to sandboxed network service. | |||
** New API for reading subprocess id of page/view. | |||
** WebEngineHistory::clear method added. | |||
* Qt WebSockets | * Qt WebSockets | ||
* | ** Added public API to set the maximum frame size and message size. | ||
* QDoc | * QDoc | ||
** QDoc can now generate DocBook. | ** QDoc can now generate DocBook. | ||
Line 38: | Line 63: | ||
** QDoc now generates correct output for scoped enums (enum classes). | ** QDoc now generates correct output for scoped enums (enum classes). | ||
== Platform Changes == | |||
* Android | * Android | ||
** Use Android's native file dialog by default for open (file, multiple files, directory) and save operations. | |||
** Move minSdkVersion & targetSdkVersion from AndroidManifest.xml to build.gradle ([http://bugreports.qt.io/browse/QTBUG-70817 QTBUG-70817]). | |||
** Fix some examples on Android ([https://bugreports.qt.io/browse/QTBUG-80717 QTBUG-80717], [https://bugreports.qt.io/browse/QTBUG-80716 QTBUG-80716]). | |||
** Improve all Android documentation pages ([https://bugreports.qt.io/browse/QTBUG-80390 QTBUG-80390]). | |||
** Added Qt Android Extras example: JNI Messenger. | |||
* iOS | * iOS | ||
* Wayland | * Wayland | ||
** Introduced experimental support for Vulkan on the client side. | |||
* Embedded Linux (eglfs) | |||
** Added support for Vulkan, via VK_KHR_display, on NXP i.MX8 based devices. (in the eglfs_viv backend) | |||
* '''Technology Preview:''' Support for running Qt Quick (2D) on top of Direct3D, Metal and Vulkan | |||
** The new Rendering Hardware Interface abstraction layer allows you to run Qt Quick applications on other 3D graphics APIs | |||
== New Modules == | |||
* Qt Quick 3D | |||
** Post Processing Effects | |||
** Custom Geometry API (C++ Meshes) | |||
** Quaternions API for Node rotations | |||
* Qt | ** Right-Handed Coordinate System (previously Right or Left) | ||
** Improved Qt Quick 2D in 3D Scene support | |||
* Qt | ** Performance improvements | ||
** Spot Light Support | |||
* | * Qt Lottie | ||
** Bodymovin JSON renderer for After Effects animations | |||
** Performance and stability improvements added | |||
== Technology Preview Modules == | |||
* Qt PDF | |||
** Based on shared Pdfium version with Qt WebEngine | |||
** Available on the same platforms Qt WebEngine are available on, plus iOS. | |||
== Qt for Automation == | |||
The automation modules only received bug fixes and no noteworthy feature additions. | |||
== Deprecated Modules == | |||
To help preparing for the transition to Qt 6, numerous classes and member functions that will be removed from Qt 6.0 have been marked as deprecated in the Qt 5.15 release. Unless you define QT_NO_DEPRECATED_WARNINGS in your project, you will get compiler warnings for code that uses any deprecated APIs. Those warnings will explain which API to use instead. To disable any deprecated APIs completely, use the QT_DISABLE_DEPRECATED_BEFORE macro. | To help preparing for the transition to Qt 6, numerous classes and member functions that will be removed from Qt 6.0 have been marked as deprecated in the Qt 5.15 release. Unless you define QT_NO_DEPRECATED_WARNINGS in your project, you will get compiler warnings for code that uses any deprecated APIs. Those warnings will explain which API to use instead. To disable any deprecated APIs completely, use the QT_DISABLE_DEPRECATED_BEFORE macro. | ||
Line 64: | Line 106: | ||
* Qt Script | * Qt Script | ||
* Qt Quick Controls 1 | * Qt Quick Controls 1 | ||
* Qt | * Qt XML Patterns | ||
== Removed Modules == | |||
The following modules have been deprecated earlier and no longer part of the Qt 5.15 release: None | |||
== Long-Term Support == | |||
For commercial license holders Qt 5.15 LTS is supported for 3 years under standard support and after that extended support is available (for an additional fee). | |||
For open-source users Qt 5.15 is like any other Qt feature release (patch releases available until the next version is released). | |||
== Configurations == | |||
{{Release Information}} | {{Release Information}} |
Latest revision as of 11:53, 19 May 2020
New Features (within existing modules)
- Qt 3D
- Improved profiling and troubleshooting support
- QSortPolicy add Uniform mode to control whether uniform minification needs to be performed or not
- QMouseDevice add updateAxesContinuously property
- OpenGL Renderer is now isolated as a plugin
- Qt Core
- QFile::moveToTrash provides a cross platform API for moving files to the trash/recycling bin on Windows, macOS, and Linux desktop (implementing the freedesktop.org specification).
- QFileInfo::isJunction reports whether a file system entry is a Windows NTFS junction
- QRunnable's can now be created from std::function without having to subclass QRunnable.
- QThreadPool::start and tryStart can now take std::function and thereby also anonymous lambda functions as arguments.
- Added static template QDebug::toString function, which streams the given object into a QDebug instance that operates on a string, and then returns that string. This is useful for cases where you need the textual representation of an object for debugging, but cannot use operator<<, such as when passing a failure message to QVERIFY2.
- Qt GUI
- QColorSpace setters can now operate on invalid color spaces, making it possible to set primaries and transfer function independently.
- Many QImage scaling and conversion methods are now multithreaded.
- Qt Location
- Updated 3rdparty library earcut.
- Ported Map*ObjectPrivateQSG to the shader-based projection geometries.
- Added optional argument to Map.fitViewportToMapItems.
- Qt Multimedia
- Deprecated QMediaService and QMediaControl. And all plugin API.
- Introduced reverse playback for GStreamer.
- Introduced rendering to multiple surfaces.
- Introduced QVideoWidget::videoSurface(), QGraphicsVideoItem::videoSurface() and QDeclarativeVideoOutput::videoSurface().
- Introduced videoOutput property for MediaPlayer QML element.
- Introduced QVideoFrame::image().
- Added using of notify::zoom and notify::max-zoom for GStreamer Camerabin.
- Qt Network
- A new session ticket mechanism introduced by TLS 1.3 protocol is now supported by the OpenSSL backend.
- Timeouts for downloads and uploads can be now set for QNetworkRequest and QNetworkAccessManager.
- The minimum supported version of OpenSSL is 1.1.
- Qt QML
- Introduced inline components (ability to declare multiple QML components in the same file)
- Introduced required properties
- Added a declarative way of registering types to QML
- qmllint now has a better understanding of the code and warns about more deprecated QML features
- Added qmlformat tool which automatically formats any QML file according to the QML Coding Conventions.
- Added support for the Nullish Coalescing Operator (??).
- Added colorspace property on image nodes, making it possible to read color space and transform images to specific color spaces.
- Qt Quick
- Added a PathText type, which can be used together with Qt Quick Shapes to render text as geometry and not based on distance fields or pre-rendered textures. This can be useful for rendering large font sizes which would otherwise consume a lot of texture memory.
- Added Image.sourceClipRect to specify a clipping region, to request the image plugin to render a portion of an image source.
- Added cursorShape property to pointer handlers. Most pointer handlers (e.g. DragHandler) will change the cursor when the active state is true. HoverHandler will change it when the mouse is hovering over the Item that contains the HoverHandler.
- The opt-in preview of the graphics API independent rendering architecture now supports Metal on iOS as well.
- Qt Quick Controls 2
- Added HorizontalHeaderView and VerticalHeaderView to display header data in a TableView. Support flicking synchronization, and default, fusion, imagine, material, and universal delegate styles.
- Added selectTextByMouse property to ComboBox.
- Qt SerialBus
- Added CAN FD support to the VectorCAN plugin.
- Qt Test
- Qt WebEngine
- Updated to be based on Chromium 80
- Switched to sandboxed network service.
- New API for reading subprocess id of page/view.
- WebEngineHistory::clear method added.
- Qt WebSockets
- Added public API to set the maximum frame size and message size.
- QDoc
- QDoc can now generate DocBook.
- QDoc now generates output for C++ class and function template parameters.
- QDoc now generates correct output for scoped enums (enum classes).
Platform Changes
- Android
- Use Android's native file dialog by default for open (file, multiple files, directory) and save operations.
- Move minSdkVersion & targetSdkVersion from AndroidManifest.xml to build.gradle (QTBUG-70817).
- Fix some examples on Android (QTBUG-80717, QTBUG-80716).
- Improve all Android documentation pages (QTBUG-80390).
- Added Qt Android Extras example: JNI Messenger.
- iOS
- Wayland
- Introduced experimental support for Vulkan on the client side.
- Embedded Linux (eglfs)
- Added support for Vulkan, via VK_KHR_display, on NXP i.MX8 based devices. (in the eglfs_viv backend)
- Technology Preview: Support for running Qt Quick (2D) on top of Direct3D, Metal and Vulkan
- The new Rendering Hardware Interface abstraction layer allows you to run Qt Quick applications on other 3D graphics APIs
New Modules
- Qt Quick 3D
- Post Processing Effects
- Custom Geometry API (C++ Meshes)
- Quaternions API for Node rotations
- Right-Handed Coordinate System (previously Right or Left)
- Improved Qt Quick 2D in 3D Scene support
- Performance improvements
- Spot Light Support
- Qt Lottie
- Bodymovin JSON renderer for After Effects animations
- Performance and stability improvements added
Technology Preview Modules
- Qt PDF
- Based on shared Pdfium version with Qt WebEngine
- Available on the same platforms Qt WebEngine are available on, plus iOS.
Qt for Automation
The automation modules only received bug fixes and no noteworthy feature additions.
Deprecated Modules
To help preparing for the transition to Qt 6, numerous classes and member functions that will be removed from Qt 6.0 have been marked as deprecated in the Qt 5.15 release. Unless you define QT_NO_DEPRECATED_WARNINGS in your project, you will get compiler warnings for code that uses any deprecated APIs. Those warnings will explain which API to use instead. To disable any deprecated APIs completely, use the QT_DISABLE_DEPRECATED_BEFORE macro.
The following modules are part of Qt 5.15 release, but deprecated and considered for removal in subsequent releases of Qt:
- Qt Script
- Qt Quick Controls 1
- Qt XML Patterns
Removed Modules
The following modules have been deprecated earlier and no longer part of the Qt 5.15 release: None
Long-Term Support
For commercial license holders Qt 5.15 LTS is supported for 3 years under standard support and after that extended support is available (for an additional fee).
For open-source users Qt 5.15 is like any other Qt feature release (patch releases available until the next version is released).