New Features in Qt 5.11: Difference between revisions
Jump to navigation
Jump to search
Lars Knoll (talk | contribs) (Described the JS/QML engine changes) |
(Fix incorrectly described qmake feature. See QTBUG-68292 where this was fixed in the Qt docs but not taken over here.) |
||
(23 intermediate revisions by 16 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)''' | '''New Features (within existing modules)''' | ||
* Qt Core | * Qt Core | ||
** [QTBUG-52244] QIODevice::NewOnly and QIODevice::ExistingOnly OpenMode flags, which, when used with QFile, instruct open() to return false when the given file does (NewOnly) or does not (ExistingOnly) exist at the time of the call to open (atomically). | |||
** QFloat16 now has two methods for bulk conversion between float16 and float, using hardware SIMD acceleration if available at runtime. | ** QFloat16 now has two methods for bulk conversion between float16 and float, using hardware SIMD acceleration if available at runtime. | ||
** QVarLengthArray now has rvalue reference versions of prepend and insert, and can hold movable-only datatypes such as std::unique_ptr. | ** QVarLengthArray now has rvalue reference versions of prepend and insert, and can hold movable-only datatypes such as std::unique_ptr. | ||
** QVector now has rvalue reference versions of prepend and insert. | ** QVector now has rvalue reference versions of prepend and insert. | ||
** QUuid toString() and toByteArray() can now | ** QUuid toString() and toByteArray() can now take a parameter specifying the generated format. | ||
** Updated our Unicode support in QString, QChar and QTextBoundaryFinder to be compatible with Unicode 10. | |||
** Added QAbstractItemModel::checkIndex() to help testing the validity of model indices by concrete model classes. | |||
* Qt Network | * Qt Network | ||
** ALPN (via Secure Transport) and thus HTTP/2 negotiation are now supported on iOS (starting from version 11) | ** ALPN (via Secure Transport) and thus HTTP/2 negotiation are now supported on iOS (starting from version 11) | ||
** QNetworkRequest now has the Http2DirectAttribute to start a connection in HTTP/2 without first negotiating. | ** QNetworkRequest now has the Http2DirectAttribute to start a connection in HTTP/2 without first negotiating. | ||
* Qt | * Qt QML | ||
** Rewritten the compiler pipeline. We now directly generate byte code from the AST, and store that as our intermediate representation | ** Rewritten the compiler pipeline. We now directly generate byte code from the AST, and store that as our intermediate representation | ||
** Optimized handling of JS calls, bringing large improvements especially when calling small functions | ** Optimized handling of JS calls, bringing large improvements especially when calling small functions | ||
Line 20: | Line 20: | ||
** .qmlc files are now fully platform independent and store byte code instead of assembly | ** .qmlc files are now fully platform independent and store byte code instead of assembly | ||
** New hotspot JIT that generated optimised assembly for byte code that gets repeatedly executed | ** New hotspot JIT that generated optimised assembly for byte code that gets repeatedly executed | ||
** CONFIG += | ** CONFIG += qtquickcompiler now also works in the open source version, by embedding the generated byte code at compile time | ||
* Qt Quick | * Qt Quick | ||
** Expanded support for loading compressed textures in Image element. Now supports both .ktx and .pkm container file formats. | ** Expanded support for loading compressed textures in Image element. Now supports both .ktx and .pkm container file formats. | ||
* Qt Quick Controls 2 | |||
** AbstractButton | |||
*** Added autoRepeatDelay and autoRepeatInterval properties. | |||
*** Promoted the autoRepeat property from Button to AbstractButton. | |||
*** [QTBUG-62811] Added pressX and pressY properties to expose the press point to QML. | |||
** ButtonGroup | |||
*** [QTBUG-56295][QTBUG-63782] Added a checkState property. It indicates the combined check state of the entire group. | |||
** CheckBox and CheckDelegate | |||
*** [QTBUG-56295] No longer force tristate to true when setting checkState to Qt.PartiallyChecked. This allows presenting a partially checked state without being interactively tri-state. | |||
*** [QTBUG-56295] No longer consider partially checked as checked. This fixes check state cycling for a non-tri-state checkbox so that it goes from partially checked to fully checked state. | |||
*** [QTBUG-63238] Made it possible to implement nextCheckState() in QML. | |||
** ScrollBar and ScrollIndicator | |||
*** [QTBUG-56557] Added minimumSize, visualSize, and visualPosition properties. | |||
** SpinBox | |||
*** Added a displayText property to allow styles to create a light binding to display the textual value instead of having to call the textFromValue() JS-function. | |||
* Qt 3D | * Qt 3D | ||
** | ** Improved performance with reduced CPU usage | ||
** Scrub through animations with the normalizedTime property of QAbstractClipAnimator. | |||
** Issue arbitrary ray casts in world space or screen space. | |||
** Improved SIMD support | |||
* Qt | * Qt Location | ||
** | ** Experimental turn-by-turn navigation API | ||
** Experimental QQuickItem-less map object support | |||
** Routing and Places API now extensible, and capable of returning service-specific information | |||
** New Waypoint element to specify additional waypoint information in route queries, such as angle of approach. | |||
** MapItemView now QQmlDelegateModel-based, fixing QTBUG-62086 and QTBUG-65833 | |||
** Greatly improved MapPolyline performance | |||
** Layers now properly working in combination with Map Items, allowing anti-aliasing and artifact-less transparency | |||
** Geocoding and Places support added to the Mapbox plugin | |||
* Qt WebEngine | * Qt WebEngine | ||
** Updated to Chromium | ** Updated to Chromium 65. | ||
** Embedded DevTools without using a port and separate browser. | ** Embedded DevTools without using a port and separate browser. | ||
** Installable cookie filter. | ** Installable cookie filter. | ||
** Quota permissions. | ** Quota permissions. | ||
* qdoc | |||
** qdoc now uses libclang for parsing C/C++ code. | |||
* Qt Designer | * Qt Designer | ||
Line 42: | Line 71: | ||
* Qt GUI | * Qt GUI | ||
** On Windows Desktop, the accessibility support was updated and vastly improved. The implementation is now based on Microsoft UI Automation (it was formerly based on Microsoft Active Accessibility). | ** On Windows Desktop, the accessibility support was updated and vastly improved. The implementation is now based on Microsoft UI Automation (it was formerly based on Microsoft Active Accessibility). | ||
** The widgets themes available on Windows Desktop were updated to better support High-DPI displays, including fixes for several rendering issues, providing improved appearance and functionality. | |||
** Linux Printing now supports more CUPS options with the advanced tab in QPrintPropertiesDialog ([https://bugreports.qt.io/browse/QTBUG-54464 QTBUG-54464]) allowing many additional settings (amongst them arbitrary page ranges [https://bugreports.qt.io/browse/QTBUG-1311 QTBUG-1311]). | ** Linux Printing now supports more CUPS options with the advanced tab in QPrintPropertiesDialog ([https://bugreports.qt.io/browse/QTBUG-54464 QTBUG-54464]) allowing many additional settings (amongst them arbitrary page ranges [https://bugreports.qt.io/browse/QTBUG-1311 QTBUG-1311]). | ||
** Updated the Unicode bidirectional text algorithm to be compliant with Unicode 10. | |||
* Qt Widgets | |||
** Added quick text selection by mouse to QLineEdit. | |||
* Qt Serial Bus | |||
** Added J2534 Pass-Thru CAN plugin for communication between a computer and a vehicle | |||
** Added description, serial number and channel to QCanBusDeviceInfo, as far as supported by the various plugins. | |||
** Introduced categorized logging to the CAN bus module which can be enabled by the "qt.canbus" and "qt.canbus.plugins.<pluginname>" filters. | |||
** QCanBusFrame::isValid() now checks for invalid CAN FD payload lengths. E.g. 24 is a valid CAN FD payload length, but 28 is not. | |||
* Qt Bluetooth | |||
** Ported Bluetooth Low Energy Central role implementation to BlueZ's DBus LE API (minimum version to enable is BlueZ 5.42) | |||
* Qt Test | |||
** Added QAbstractItemModelTester to help testing model classes. | |||
'''New Modules''' | '''New Modules''' | ||
Line 48: | Line 90: | ||
'''Platform Changes''' | '''Platform Changes''' | ||
* [https://bugreports.qt.io/secure/Dashboard.jspa?selectPageId=15116 Jira] tracking for 5.11 changes: | * [https://bugreports.qt.io/secure/Dashboard.jspa?selectPageId=15116 Jira] tracking for 5.11 changes | ||
* MSVC2013 support removed from the code base | |||
* QNX 6.6 no longer supported (note: QNX 7 remains fully supported) | |||
* macOS 10.10 no longer supported | |||
* Qt WebEngine on Windows now requires MSVC 2017 to compile | |||
* Improved Accessibility support on Win32 by adopting the Windows UI Automation framework | |||
* XCB | * XCB | ||
** Support for missing 'dead keys' such as dasia and diaeresis. | ** Support for missing 'dead keys' such as dasia and diaeresis. | ||
* eglfs | |||
** Added support for framebuffer formats other than XRGB8888 (RGB565, ARGB8888). | |||
** Added experimental screen cloning support (by scanning out the same framebuffer on multiple crtcs) | |||
** Added support for operating with DRM render nodes (/dev/dri/renderDnn) in a headless mode transparent to applications | |||
** Added a makespec for Renesas R-Car M3 | |||
** Added experimental backend for compositing Qt content with other hardware layers via VSP2 on Renesas devices | |||
'''Technology Preview Modules''' | '''Technology Preview Modules''' | ||
Line 61: | Line 113: | ||
The following modules are part of Qt 5.11 release, but deprecated and considered for removal in subsequent releases of Qt: | The following modules are part of Qt 5.11 release, but deprecated and considered for removal in subsequent releases of Qt: | ||
* Qt Script | * Qt Script | ||
* Qt Quick Controls 1 | |||
'''Configurations''' | '''Configurations''' | ||
{{Release Information}} | {{Release Information}} |
Latest revision as of 07:17, 23 May 2018
New Features (within existing modules)
- Qt Core
- [QTBUG-52244] QIODevice::NewOnly and QIODevice::ExistingOnly OpenMode flags, which, when used with QFile, instruct open() to return false when the given file does (NewOnly) or does not (ExistingOnly) exist at the time of the call to open (atomically).
- QFloat16 now has two methods for bulk conversion between float16 and float, using hardware SIMD acceleration if available at runtime.
- QVarLengthArray now has rvalue reference versions of prepend and insert, and can hold movable-only datatypes such as std::unique_ptr.
- QVector now has rvalue reference versions of prepend and insert.
- QUuid toString() and toByteArray() can now take a parameter specifying the generated format.
- Updated our Unicode support in QString, QChar and QTextBoundaryFinder to be compatible with Unicode 10.
- Added QAbstractItemModel::checkIndex() to help testing the validity of model indices by concrete model classes.
- Qt Network
- ALPN (via Secure Transport) and thus HTTP/2 negotiation are now supported on iOS (starting from version 11)
- QNetworkRequest now has the Http2DirectAttribute to start a connection in HTTP/2 without first negotiating.
- Qt QML
- Rewritten the compiler pipeline. We now directly generate byte code from the AST, and store that as our intermediate representation
- Optimized handling of JS calls, bringing large improvements especially when calling small functions
- Newly written byte code interpreter with a vastly improved performance (at 80-90% of the JIT in Qt 5.10)
- .qmlc files are now fully platform independent and store byte code instead of assembly
- New hotspot JIT that generated optimised assembly for byte code that gets repeatedly executed
- CONFIG += qtquickcompiler now also works in the open source version, by embedding the generated byte code at compile time
- Qt Quick
- Expanded support for loading compressed textures in Image element. Now supports both .ktx and .pkm container file formats.
- Qt Quick Controls 2
- AbstractButton
- Added autoRepeatDelay and autoRepeatInterval properties.
- Promoted the autoRepeat property from Button to AbstractButton.
- [QTBUG-62811] Added pressX and pressY properties to expose the press point to QML.
- ButtonGroup
- [QTBUG-56295][QTBUG-63782] Added a checkState property. It indicates the combined check state of the entire group.
- CheckBox and CheckDelegate
- [QTBUG-56295] No longer force tristate to true when setting checkState to Qt.PartiallyChecked. This allows presenting a partially checked state without being interactively tri-state.
- [QTBUG-56295] No longer consider partially checked as checked. This fixes check state cycling for a non-tri-state checkbox so that it goes from partially checked to fully checked state.
- [QTBUG-63238] Made it possible to implement nextCheckState() in QML.
- ScrollBar and ScrollIndicator
- [QTBUG-56557] Added minimumSize, visualSize, and visualPosition properties.
- SpinBox
- Added a displayText property to allow styles to create a light binding to display the textual value instead of having to call the textFromValue() JS-function.
- AbstractButton
- Qt 3D
- Improved performance with reduced CPU usage
- Scrub through animations with the normalizedTime property of QAbstractClipAnimator.
- Issue arbitrary ray casts in world space or screen space.
- Improved SIMD support
- Qt Location
- Experimental turn-by-turn navigation API
- Experimental QQuickItem-less map object support
- Routing and Places API now extensible, and capable of returning service-specific information
- New Waypoint element to specify additional waypoint information in route queries, such as angle of approach.
- MapItemView now QQmlDelegateModel-based, fixing QTBUG-62086 and QTBUG-65833
- Greatly improved MapPolyline performance
- Layers now properly working in combination with Map Items, allowing anti-aliasing and artifact-less transparency
- Geocoding and Places support added to the Mapbox plugin
- Qt WebEngine
- Updated to Chromium 65.
- Embedded DevTools without using a port and separate browser.
- Installable cookie filter.
- Quota permissions.
- qdoc
- qdoc now uses libclang for parsing C/C++ code.
- Qt Designer
- Added support for ID-based translations ( QTBUG-34610 )
- Qt GUI
- On Windows Desktop, the accessibility support was updated and vastly improved. The implementation is now based on Microsoft UI Automation (it was formerly based on Microsoft Active Accessibility).
- The widgets themes available on Windows Desktop were updated to better support High-DPI displays, including fixes for several rendering issues, providing improved appearance and functionality.
- Linux Printing now supports more CUPS options with the advanced tab in QPrintPropertiesDialog (QTBUG-54464) allowing many additional settings (amongst them arbitrary page ranges QTBUG-1311).
- Updated the Unicode bidirectional text algorithm to be compliant with Unicode 10.
- Qt Widgets
- Added quick text selection by mouse to QLineEdit.
- Qt Serial Bus
- Added J2534 Pass-Thru CAN plugin for communication between a computer and a vehicle
- Added description, serial number and channel to QCanBusDeviceInfo, as far as supported by the various plugins.
- Introduced categorized logging to the CAN bus module which can be enabled by the "qt.canbus" and "qt.canbus.plugins.<pluginname>" filters.
- QCanBusFrame::isValid() now checks for invalid CAN FD payload lengths. E.g. 24 is a valid CAN FD payload length, but 28 is not.
- Qt Bluetooth
- Ported Bluetooth Low Energy Central role implementation to BlueZ's DBus LE API (minimum version to enable is BlueZ 5.42)
- Qt Test
- Added QAbstractItemModelTester to help testing model classes.
New Modules
- No new modules added
Platform Changes
- Jira tracking for 5.11 changes
- MSVC2013 support removed from the code base
- QNX 6.6 no longer supported (note: QNX 7 remains fully supported)
- macOS 10.10 no longer supported
- Qt WebEngine on Windows now requires MSVC 2017 to compile
- Improved Accessibility support on Win32 by adopting the Windows UI Automation framework
- XCB
- Support for missing 'dead keys' such as dasia and diaeresis.
- eglfs
- Added support for framebuffer formats other than XRGB8888 (RGB565, ARGB8888).
- Added experimental screen cloning support (by scanning out the same framebuffer on multiple crtcs)
- Added support for operating with DRM render nodes (/dev/dri/renderDnn) in a headless mode transparent to applications
- Added a makespec for Renesas R-Car M3
- Added experimental backend for compositing Qt content with other hardware layers via VSP2 on Renesas devices
Technology Preview Modules
- Qt Remote Objects (TP3) - A module that allows you to easily share QObject interfaces (Signals/Slots/Properties) between processes or devices.
- Qt WebGL Streaming Plugin (TP2) - Stream applications to browsers over the network
Deprecated Modules
The following modules are part of Qt 5.11 release, but deprecated and considered for removal in subsequent releases of Qt:
- Qt Script
- Qt Quick Controls 1
Configurations