New Features in Qt 5.14: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
m (Clean module names) |
||
(36 intermediate revisions by 25 users not shown) | |||
Line 5: | Line 5: | ||
'''New Features (within existing modules)''' | '''New Features (within existing modules)''' | ||
* Qt 3D | * Qt 3D | ||
** Threading architecture overhaul (removal of aspect thread) | |||
** Frontend/Backend node sync overhaul | |||
** QTransform now has access to the world matrix | |||
** Introduction of Scene3DView | |||
** Scene3D is now in sync with QtQuick | |||
** Scene3D can now render as an underlay without FBO | |||
* Qt Bluetooth | * Qt Bluetooth | ||
** [[https://bugreports.qt.io/browse/QTBUG-40698 QTBUG-40698]] Optional win32 backend to support Windows 7 and 8. Backend is not built by default and not part of the prebuild packages though. | |||
** QLowEnergyController: Introduce AuthorizationError | |||
** [[https://bugreports.qt.io/browse/QTBUG-76615 QTBUG-76615]] Ability to have multiple manufacturer data per manufacturer ID | |||
* Qt Core | * Qt Core | ||
** <kbd>QCalendar</kbd> adds support for Calendars other than Gregorian, by implementation of suitable back-ends. | |||
*** Back-ends to implement the Gregorian, Jalali (Persian), Islamic Civil, Milankovic, and Julian calendars. We look forward to other contributions. | |||
** [[https://bugreports.qt.io/browse/QTBUG-14150 QTBUG-14150]] Qt is now relocatable, i.e. it's possible to move the Qt installation without breaking functionality or loading of plugins. | |||
* Qt GUI | * Qt GUI | ||
** Color-space support for images. | ** QColorConstants provide constexpr QColor instances that don't cost any runtime overhead | ||
** Updated High-DPI support. | |||
*** Applications can now opt-in to use non-integer scale factors, for example Windows at 150%. Use QGuiApplication::highDpiScaleFactorRoundingPolicy or QT_SCALE_FACTOR_ROUNDING_POLICY to set the rounding policy. | |||
*** Added the QT_ENABLE_HIGHDPI_SCALING environment variable which enables high-dpi scaling based on display DPI. Replaces QT_AUTO_SCREEN_SCALE_FACTOR (now deprecated), and corresponds to the Qt::AA_EnableHighDpiScaling application attribute. | |||
*** The QT_FONT_DPI environment variable is now supported cross-platform, for the purpose of developing and testing with specific DPI values. | |||
** Color-space support for images. Reading and writing color-spaces from JPEG, PNG, WebP and TIFF images, and performing color-space transformation on images. | |||
** QTextDocument/QTextTable now support | |||
*** per-edge border styling via QTextTableCellFormat | |||
*** border-collapse mode | |||
*** HTML table style import (partial) and export | |||
** QTextDocument supports reading and writing Markdown format, as an alternative to HTML. If you read HTML and write Markdown, or vice-versa, the formatting should be preserved to the extent that the CommonMark and GitHub specs allow (including headings, tables, bullet lists, block quotes and code blocks); but we don't guarantee all cases yet, because it's thinly tested so far. | |||
* Qt Location | * Qt Location | ||
* Qt Multimedia | * Qt Multimedia | ||
** Added QVideoFrame::Format_YUV422P. | |||
** Introduced support of GStreamer OpenGL plugin. | |||
* Qt Network | * Qt Network | ||
** HTTP/2 configuration API | |||
** Network connectivity monitoring | |||
** [[https://bugreports.qt.io/browse/QTBUG-1538 QTBUG-1538]] Support Kerberos Proxy Authentication | |||
* Qt QML | * Qt QML | ||
** Added qmlRegisterSingletonInstance function. This allows to expose a QObject as a singleton to QML, without having to create a factory function as required by qmlRegisterSingletonType. It is meant as a type safe replacement of setContextProperty in common usages. | |||
** Added qmlRegisterAnonymousType as a replacement for qmlRegisterType. It allows to specify the URI and major version, which enables better tooling support. | |||
** qmllint gained an experimental -U option. If run with it, it warns about accesses to unqualified identifiers | |||
* Qt Quick | * Qt Quick | ||
** Added the first preview of the graphics API independent scenegraph renderer as an opt-in feature. This allows running qualifying Qt Quick applications on top of Vulkan, Metal, or Direct3D 11 instead of OpenGL. The supported platforms are currently Windows 10, Linux with X11 (xcb), macOS with MoltenVK, or Android 7.0+ for Vulkan, macOS for Metal, Windows 10 for D3D. | ** Added the first preview of the graphics API independent scenegraph renderer as an opt-in feature. This allows running qualifying Qt Quick applications on top of Vulkan, Metal, or Direct3D 11 instead of OpenGL. The supported platforms are currently Windows 10, Linux with X11 (xcb), macOS with MoltenVK, or Android 7.0+ for Vulkan, macOS for Metal, Windows 10 for D3D. | ||
** Text and TextEdit now support Markdown format (CommonMark and GitHub dialects) as an alternative to HTML. | |||
*** Includes the GitHub checklist extension, such that you can click to toggle checkboxes in a TextEdit. | |||
** TextEdit uses an I-beam cursor by default, and a pointing-hand cursor when hovering a checkbox or a link. You can still override the default cursor, though. | |||
** Added WheelHandler, an Event Handler for the mouse wheel, and optionally for emulated mouse wheel events coming from a trackpad. | |||
** Added BoundaryRule in Qt.labs.animation: a PropertyValueInterceptor that restricts the range of values a numeric property can have, applies "resistance" when the value is overshooting, and provides the ability to animate it back within range. It's particularly useful in combination with WheelHandler, to provide similar physics as Flickable has. | |||
** Event Handler base classes such as QQuickSinglePointHandler and QQuickMultiPointHandler have private implementation, while the classes themselves are suitable for subclassing, and are exported. They do not have supported public C++ API yet, but we encourage you to experiment with subclassing them anyway using the private API. They are intended to become public at some point in Qt 6 (and we can continue to iterate the API until then, especially to keep up with upcoming changes to the QEvent classes in Qt 6). | |||
** Image and BorderImage now have the same currentFrame and frameCount properties that AnimatedImage has; this allows choosing an individual icon from an .ICO file that contains multiple icons, for example. In the future it's intended to support other multi-page formats such as PDF, TIFF and WEBP. | |||
** Added PathPolyline and PathMultiline as additional ways of drawing and/or filling arbitrary polygons and sets of polygons with Qt Quick Shapes. | |||
* Qt Quick Controls 2 | * Qt Quick Controls 2 | ||
* Qt SerialBus | |||
** [[https://bugreports.qt.io/browse/QTBUG-72979 QTBUG-72979]] Added operators to compare QCanBusDevice::Filter for equality or inequality. | |||
** [[https://bugreports.qt.io/browse/QTBUG-70449 QTBUG-70449]] Added the QCanBusDevice::OperationError and QCanBusDevice::TimeoutError codes to signal wrong operation respectively timeout errors. | |||
** [[https://bugreports.qt.io/browse/QTBUG-70766 QTBUG-70766]] Added the function QCanBusDevice::busStatus() to query the CAN bus status from the CAN bus device. | |||
** [[https://bugreports.qt.io/browse/QTBUG-54943 QTBUG-54943]] Added the function QCanBusDevice::resetController() to reset a CAN controller from bus off state. | |||
** [[https://bugreports.qt.io/browse/QTBUG-75204 QTBUG-75204]] SocketCAN: Added the configuration parameter QCanBusDevice::ProtocolKey to use another protocol inside the protocol family PF_CAN. | |||
** [[https://bugreports.qt.io/browse/QTBUG-54296 QTBUG-54296]] SocketCAN: If libsocketcan is available, the CAN bus bitrate can be get and set at runtime. | |||
** PeakCAN: Added support for PCAN-USB devices on macOS by using the [http://www.mac-can.com MacCAN library]. | |||
** [[https://bugreports.qt.io/browse/QTBUG-75405 QTBUG-75405]][[https://bugreports.qt.io/browse/QTBUG-76232 QTBUG-76232]] Expose the underling QIODevice used for Modbus communication, e.g. for setting the serial port hardware flow control (RTS/CTS). | |||
* Qt Test | * Qt Test | ||
** <kbd>initMain()</kbd> method to perform any initialization that needs to happen before <kbd>QApplication</kbd> exists. | |||
* Qt Wayland Compositor | * Qt Wayland Compositor | ||
* Qt WebEngine | * Qt WebEngine | ||
** Updated to be based on Chromium 77 | |||
** [[https://bugreports.qt.io/browse/QTBUG-74166 QTBUG-74166]] New API for control of QWebEnginePage life-cycle | |||
** [[https://bugreports.qt.io/browse/QTBUG-56978 QTBUG-56978]] Methods and properties for download item to get suggested name, and change the download directory and file name | |||
** [[https://bugreports.qt.io/browse/QTBUG-50420 QTBUG-50420]] New findTextFinished signal and corresponding QWebEngineFindTextResult and FindTextResult types to get extra information about the result of a text search | |||
** [[https://bugreports.qt.io/browse/QTBUG-55110 QTBUG-55110]][[https://bugreports.qt.io/browse/QTBUG-51176 QTBUG-51176]] Added methods to QWebEngineCertificateError to asynchronously handle an error, and get a chain of digital certificates | |||
* Qt WebSockets | * Qt WebSockets | ||
* Qt Widgets | |||
** QTextEdit and QTextBrowser now support Markdown format (CommonMark and GitHub dialects) as an alternative to HTML. | |||
*** Includes the GitHub checklist extension, such that you can click to toggle checkboxes if the widget is editable. | |||
*** QTextBrowser::setSource() detects Markdown based on the file extension. | |||
'''Platform Changes''' | '''Platform Changes''' | ||
* Android | * Android | ||
** Android needs NDKr20+ | |||
** Added multi ABI build in one go. By default it will build for all android supported abis (arm64-v8a, armeabi-v7a, x86_64, x86). The user can control which ABIs he wants to use via '''ANDROID_ABIS''' qmake variable. | |||
** Added support for the new AAB package format, which allows deploying a single application bundle to Google Play which contains binaries for all supported ABIs. | |||
* iOS | * iOS | ||
* Wayland | * Wayland | ||
'''New Modules''' | |||
* Qt Quick Timeline | |||
'''Technology Preview Modules''' | '''Technology Preview Modules''' | ||
* Qt | * Added tech preview for Qt Quick 3D, a high-level API for creating 3D content for user interfaces from Qt Quick. | ||
'''Qt for Automation''' | '''Qt for Automation''' | ||
* Qt KNX | * Qt KNX | ||
** Extended support for KNXnet/IP Core V2 (discovery, tunneling, routing, security) | |||
* Qt | * Qt MQTT | ||
** Added support for using QSslConfiguration when connecting encrypted | |||
** Added autoKeepAlive property to enable manual connectivity checks | |||
* Qt OPC UA | * Qt OPC UA | ||
** Added tech preview for GDS client support | |||
** Updated 3rdparty open62541 to version 1.0 | |||
* Qt CoAP | * Qt CoAP | ||
** The module leaves the Tech Preview status behind and an API commitment is given. | |||
'''Deprecated Modules''' | '''Deprecated Modules''' | ||
Line 60: | Line 126: | ||
* Qt Script | * Qt Script | ||
* Qt Quick Controls 1 | * Qt Quick Controls 1 | ||
* Qt | * Qt XML Patterns | ||
'''Removed Modules''' | '''Removed Modules''' |
Latest revision as of 03:16, 11 January 2020
Note that this list should be considered as work in progress until the first Beta release.
New Features (within existing modules)
- Qt 3D
- Threading architecture overhaul (removal of aspect thread)
- Frontend/Backend node sync overhaul
- QTransform now has access to the world matrix
- Introduction of Scene3DView
- Scene3D is now in sync with QtQuick
- Scene3D can now render as an underlay without FBO
- Qt Bluetooth
- [QTBUG-40698] Optional win32 backend to support Windows 7 and 8. Backend is not built by default and not part of the prebuild packages though.
- QLowEnergyController: Introduce AuthorizationError
- [QTBUG-76615] Ability to have multiple manufacturer data per manufacturer ID
- Qt Core
- QCalendar adds support for Calendars other than Gregorian, by implementation of suitable back-ends.
- Back-ends to implement the Gregorian, Jalali (Persian), Islamic Civil, Milankovic, and Julian calendars. We look forward to other contributions.
- [QTBUG-14150] Qt is now relocatable, i.e. it's possible to move the Qt installation without breaking functionality or loading of plugins.
- QCalendar adds support for Calendars other than Gregorian, by implementation of suitable back-ends.
- Qt GUI
- QColorConstants provide constexpr QColor instances that don't cost any runtime overhead
- Updated High-DPI support.
- Applications can now opt-in to use non-integer scale factors, for example Windows at 150%. Use QGuiApplication::highDpiScaleFactorRoundingPolicy or QT_SCALE_FACTOR_ROUNDING_POLICY to set the rounding policy.
- Added the QT_ENABLE_HIGHDPI_SCALING environment variable which enables high-dpi scaling based on display DPI. Replaces QT_AUTO_SCREEN_SCALE_FACTOR (now deprecated), and corresponds to the Qt::AA_EnableHighDpiScaling application attribute.
- The QT_FONT_DPI environment variable is now supported cross-platform, for the purpose of developing and testing with specific DPI values.
- Color-space support for images. Reading and writing color-spaces from JPEG, PNG, WebP and TIFF images, and performing color-space transformation on images.
- QTextDocument/QTextTable now support
- per-edge border styling via QTextTableCellFormat
- border-collapse mode
- HTML table style import (partial) and export
- QTextDocument supports reading and writing Markdown format, as an alternative to HTML. If you read HTML and write Markdown, or vice-versa, the formatting should be preserved to the extent that the CommonMark and GitHub specs allow (including headings, tables, bullet lists, block quotes and code blocks); but we don't guarantee all cases yet, because it's thinly tested so far.
- Qt Location
- Qt Multimedia
- Added QVideoFrame::Format_YUV422P.
- Introduced support of GStreamer OpenGL plugin.
- Qt Network
- HTTP/2 configuration API
- Network connectivity monitoring
- [QTBUG-1538] Support Kerberos Proxy Authentication
- Qt QML
- Added qmlRegisterSingletonInstance function. This allows to expose a QObject as a singleton to QML, without having to create a factory function as required by qmlRegisterSingletonType. It is meant as a type safe replacement of setContextProperty in common usages.
- Added qmlRegisterAnonymousType as a replacement for qmlRegisterType. It allows to specify the URI and major version, which enables better tooling support.
- qmllint gained an experimental -U option. If run with it, it warns about accesses to unqualified identifiers
- Qt Quick
- Added the first preview of the graphics API independent scenegraph renderer as an opt-in feature. This allows running qualifying Qt Quick applications on top of Vulkan, Metal, or Direct3D 11 instead of OpenGL. The supported platforms are currently Windows 10, Linux with X11 (xcb), macOS with MoltenVK, or Android 7.0+ for Vulkan, macOS for Metal, Windows 10 for D3D.
- Text and TextEdit now support Markdown format (CommonMark and GitHub dialects) as an alternative to HTML.
- Includes the GitHub checklist extension, such that you can click to toggle checkboxes in a TextEdit.
- TextEdit uses an I-beam cursor by default, and a pointing-hand cursor when hovering a checkbox or a link. You can still override the default cursor, though.
- Added WheelHandler, an Event Handler for the mouse wheel, and optionally for emulated mouse wheel events coming from a trackpad.
- Added BoundaryRule in Qt.labs.animation: a PropertyValueInterceptor that restricts the range of values a numeric property can have, applies "resistance" when the value is overshooting, and provides the ability to animate it back within range. It's particularly useful in combination with WheelHandler, to provide similar physics as Flickable has.
- Event Handler base classes such as QQuickSinglePointHandler and QQuickMultiPointHandler have private implementation, while the classes themselves are suitable for subclassing, and are exported. They do not have supported public C++ API yet, but we encourage you to experiment with subclassing them anyway using the private API. They are intended to become public at some point in Qt 6 (and we can continue to iterate the API until then, especially to keep up with upcoming changes to the QEvent classes in Qt 6).
- Image and BorderImage now have the same currentFrame and frameCount properties that AnimatedImage has; this allows choosing an individual icon from an .ICO file that contains multiple icons, for example. In the future it's intended to support other multi-page formats such as PDF, TIFF and WEBP.
- Added PathPolyline and PathMultiline as additional ways of drawing and/or filling arbitrary polygons and sets of polygons with Qt Quick Shapes.
- Qt Quick Controls 2
- Qt SerialBus
- [QTBUG-72979] Added operators to compare QCanBusDevice::Filter for equality or inequality.
- [QTBUG-70449] Added the QCanBusDevice::OperationError and QCanBusDevice::TimeoutError codes to signal wrong operation respectively timeout errors.
- [QTBUG-70766] Added the function QCanBusDevice::busStatus() to query the CAN bus status from the CAN bus device.
- [QTBUG-54943] Added the function QCanBusDevice::resetController() to reset a CAN controller from bus off state.
- [QTBUG-75204] SocketCAN: Added the configuration parameter QCanBusDevice::ProtocolKey to use another protocol inside the protocol family PF_CAN.
- [QTBUG-54296] SocketCAN: If libsocketcan is available, the CAN bus bitrate can be get and set at runtime.
- PeakCAN: Added support for PCAN-USB devices on macOS by using the MacCAN library.
- [QTBUG-75405][QTBUG-76232] Expose the underling QIODevice used for Modbus communication, e.g. for setting the serial port hardware flow control (RTS/CTS).
- Qt Test
- initMain() method to perform any initialization that needs to happen before QApplication exists.
- Qt Wayland Compositor
- Qt WebEngine
- Updated to be based on Chromium 77
- [QTBUG-74166] New API for control of QWebEnginePage life-cycle
- [QTBUG-56978] Methods and properties for download item to get suggested name, and change the download directory and file name
- [QTBUG-50420] New findTextFinished signal and corresponding QWebEngineFindTextResult and FindTextResult types to get extra information about the result of a text search
- [QTBUG-55110][QTBUG-51176] Added methods to QWebEngineCertificateError to asynchronously handle an error, and get a chain of digital certificates
- Qt WebSockets
- Qt Widgets
- QTextEdit and QTextBrowser now support Markdown format (CommonMark and GitHub dialects) as an alternative to HTML.
- Includes the GitHub checklist extension, such that you can click to toggle checkboxes if the widget is editable.
- QTextBrowser::setSource() detects Markdown based on the file extension.
- QTextEdit and QTextBrowser now support Markdown format (CommonMark and GitHub dialects) as an alternative to HTML.
Platform Changes
- Android
- Android needs NDKr20+
- Added multi ABI build in one go. By default it will build for all android supported abis (arm64-v8a, armeabi-v7a, x86_64, x86). The user can control which ABIs he wants to use via ANDROID_ABIS qmake variable.
- Added support for the new AAB package format, which allows deploying a single application bundle to Google Play which contains binaries for all supported ABIs.
- iOS
- Wayland
New Modules
- Qt Quick Timeline
Technology Preview Modules
- Added tech preview for Qt Quick 3D, a high-level API for creating 3D content for user interfaces from Qt Quick.
Qt for Automation
- Qt KNX
- Extended support for KNXnet/IP Core V2 (discovery, tunneling, routing, security)
- Qt MQTT
- Added support for using QSslConfiguration when connecting encrypted
- Added autoKeepAlive property to enable manual connectivity checks
- Qt OPC UA
- Added tech preview for GDS client support
- Updated 3rdparty open62541 to version 1.0
- Qt CoAP
- The module leaves the Tech Preview status behind and an API commitment is given.
Deprecated Modules
The following modules are part of Qt 5.14 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.14 release:
Configurations