New Features in Qt 5.14

From Qt Wiki
Jump to: navigation, search

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.
  • 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.

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 XmlPatterns

Removed Modules

The following modules have been deprecated earlier and no longer part of the Qt 5.14 release:

Configurations

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 FilesQt 5.9.9 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 IssuesQt 5.9.9 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 FilesQt 5.12.5 Change FilesQt 5.12.6 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 IssuesQt 5.12.5 Known IssuesQt 5.12.6 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 FilesQt 5.13.2 Change Files Qt 5.13.0 Known IssuesQt 5.13.1 Known IssuesQt 5.13.2 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