<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- whatsnew511.qdoc --> <title>What's New in Qt 5.11 | Qt 5.12</title> <link rel="stylesheet" type="text/css" href="style/offline-simple.css" /> <script type="text/javascript"> document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css"); // loading style sheet breaks anchors that were jumped to before // so force jumping to anchor again setTimeout(function() { var anchor = location.hash; // need to jump to different anchor first (e.g. none) location.hash = "#"; setTimeout(function() { location.hash = anchor; }, 0); }, 0); </script> </head> <body> <div class="header" id="qtdocheader"> <div class="main"> <div class="main-rounded"> <div class="navigationbar"> <table><tr> <td ><a href="index.html">Qt 5.12</a></td><td >What's New in Qt 5.11</td></tr></table><table class="buildversion"><tr> <td id="buildversion" width="100%" align="right">Qt 5.12.6 Reference Documentation</td> </tr></table> </div> </div> <div class="content"> <div class="line"> <div class="content mainContent"> <div class="sidebar"> <div class="toc"> <h3><a name="toc">Contents</a></h3> <ul> <li class="level1"><a href="#new-features-in-qt-5-11">New Features in Qt 5.11</a></li> <li class="level2"><a href="#qt-core-module">Qt Core Module</a></li> <li class="level2"><a href="#qt-network-module">Qt Network Module</a></li> <li class="level2"><a href="#qt-qml-module">Qt QML Module</a></li> <li class="level2"><a href="#qt-quick-module">Qt Quick Module</a></li> <li class="level2"><a href="#qt-quick-controls-2-module">Qt Quick Controls 2 Module</a></li> <li class="level2"><a href="#qt-3d-module">Qt 3D Module</a></li> <li class="level2"><a href="#qt-location-module">Qt Location Module</a></li> <li class="level2"><a href="#qt-webengine-module">Qt WebEngine Module</a></li> <li class="level2"><a href="#qdoc-documentation-generator">QDoc Documentation Generator</a></li> <li class="level2"><a href="#qt-designer-tool">Qt Designer Tool</a></li> <li class="level2"><a href="#qt-gui-module">Qt GUI Module</a></li> <li class="level2"><a href="#qt-widgets-module">Qt Widgets Module</a></li> <li class="level2"><a href="#qt-serial-bus-module">Qt Serial Bus Module</a></li> <li class="level2"><a href="#qt-bluetooth-module">Qt Bluetooth Module</a></li> <li class="level1"><a href="#new-modules">New Modules</a></li> <li class="level1"><a href="#platform-changes">Platform Changes</a></li> <li class="level1"><a href="#technology-preview-modules">Technology Preview Modules</a></li> <li class="level1"><a href="#deprecated-modules">Deprecated Modules</a></li> <li class="level1"><a href="#list-of-api-changes">List of API Changes</a></li> <li class="level1"><a href="#additions-to-other-qt-5-releases">Additions to Other Qt 5 Releases</a></li> </ul> </div> <div class="sidebar-content" id="sidebar-content"></div></div> <h1 class="title">What's New in Qt 5.11</h1> <span class="subtitle"></span> <!-- $$$whatsnew511.html-description --> <div class="descr"> <a name="details"></a> <a name="new-features-in-qt-5-11"></a> <h2 id="new-features-in-qt-5-11">New Features in Qt 5.11</h2> <a name="qt-core-module"></a> <h3 id="qt-core-module">Qt Core Module</h3> <ul> <li>Added QIODevice::NewOnly and QIODevice::ExistingOnly <code>OpenMode</code> flags. When used with QFile, <code>NewOnly</code> instructs <code>open()</code> to (atomically) return <code>false</code> if the file to open exists. <code>ExistingOnly</code> instructs <code>open()</code> to (atomically) return <code>false</code> if the file does not exist.</li> <li>QFloat16 now has two methods for bulk conversion between <code>float16</code> and <code>float</code>, using hardware SIMD acceleration if available at runtime.</li> <li>QVarLengthArray now has rvalue reference versions of prepend and insert, and can hold movable-only datatypes such as <code>std::unique_ptr</code>.</li> <li>QVector now has rvalue reference versions of prepend and insert.</li> <li>QUuid <code>toString()</code> and <code>toByteArray()</code> now take a parameter specifying the generated format.</li> <li>Updated Unicode support in QString, QChar, and QTextBoundaryFinder to be compatible with Unicode 10.</li> </ul> <a name="qt-network-module"></a> <h3 id="qt-network-module">Qt Network Module</h3> <ul> <li>ALPN (via Secure Transport) and thus HTTP/2 negotiation are now supported on iOS (starting from version 11).</li> <li>QNetworkRequest now has the <code>Http2DirectAttribute</code> to start a connection in HTTP/2 without first negotiating.</li> </ul> <a name="qt-qml-module"></a> <h3 id="qt-qml-module">Qt QML Module</h3> <ul> <li>The compiler pipeline is rewritten. We now directly generate byte code from the AST, and store that as our intermediate representation.</li> <li>Optimized handling of JS calls, bringing large improvements especially when calling small functions.</li> <li>Newly written byte code interpreter brings significant performance improvements, at 80-90% of the JIT in Qt 5.10.</li> <li><code>.qmlc</code> files are now fully platform-independent and store byte code instead of assembly.</li> <li>New hotspot JIT that generates optimized assembly for byte code that gets repeatedly executed.</li> <li><code>CONFIG += qtquickcompiler</code> now also works in the open source version, by embedding the generated byte code at compile time.</li> </ul> <a name="qt-quick-module"></a> <h3 id="qt-quick-module">Qt Quick Module</h3> <ul> <li>Expanded support for loading compressed textures in Image element. Now supports both <code>.ktx</code> and <code>.pkm</code> container file formats.</li> </ul> <a name="qt-quick-controls-2-module"></a> <h3 id="qt-quick-controls-2-module">Qt Quick Controls 2 Module</h3> <ul> <li>AbstractButton<ul> <li>Promoted the autoRepeat property from Button to <code>AbstractButton</code>.</li> <li>Added autoRepeatDelay and autoRepeatInterval properties.</li> <li>Added <code>pressX</code> and <code>pressY</code> properties to expose the press point to QML.</li> </ul> </li> <li>ButtonGroup<ul> <li>Added a <code>checkState</code> property. It indicates the combined check state of the entire group.</li> </ul> </li> <li>CheckBox and CheckDelegate<ul> <li>No longer force tristate to <code>true</code> when setting <code>checkState</code> to <code>Qt.PartiallyChecked</code>. This allows presenting a partially checked state without being interactively tri-state.</li> <li>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.</li> <li>Made it possible to implement <code>nextCheckState()</code> in QML.</li> </ul> </li> <li>ScrollBar and ScrollIndicator<ul> <li>Added <code>minimumSize</code>, <code>visualSize</code>, and <code>visualPosition</code> properties.</li> </ul> </li> <li>SpinBox<ul> <li>Added a <code>displayText</code> property to allow styles to create a light binding to display the textual value instead of having to call the <code>textFromValue()</code> JS-function.</li> </ul> </li> </ul> <a name="qt-3d-module"></a> <h3 id="qt-3d-module">Qt 3D Module</h3> <ul> <li>Scrub through animations with the <code>normalizedTime</code> property of QAbstractClipAnimator.</li> <li>Issue arbitrary ray casts in world space or screen space.</li> <li>Improved SIMD support.</li> </ul> <a name="qt-location-module"></a> <h3 id="qt-location-module">Qt Location Module</h3> <ul> <li>New Qt.labs.location plugin containing experimental QML types.</li> </ul> <a name="qt-webengine-module"></a> <h3 id="qt-webengine-module">Qt WebEngine Module</h3> <ul> <li>Updated to Chromium 65.</li> <li>Embedded DevTools without using a port and separate browser.</li> <li>Installable cookie filter.</li> <li>Quota permissions.</li> </ul> <a name="qdoc-documentation-generator"></a> <h3 id="qdoc-documentation-generator">QDoc Documentation Generator</h3> <ul> <li>QDoc now uses libclang for parsing C/C++ code.</li> </ul> <a name="qt-designer-tool"></a> <h3 id="qt-designer-tool">Qt Designer Tool</h3> <ul> <li>Added support for ID-based translations.</li> </ul> <a name="qt-gui-module"></a> <h3 id="qt-gui-module">Qt GUI Module</h3> <ul> <li>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).</li> <li>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.</li> <li>Linux Printing now supports more CUPS options with the advanced tab in QPrintPropertiesDialog, allowing many additional settings (amongst them arbitrary page ranges).</li> <li>Updated the Unicode bidirectional text algorithm to be compliant with Unicode 10.</li> </ul> <a name="qt-widgets-module"></a> <h3 id="qt-widgets-module">Qt Widgets Module</h3> <ul> <li>Added quick text selection by mouse to QLineEdit.</li> </ul> <a name="qt-serial-bus-module"></a> <h3 id="qt-serial-bus-module">Qt Serial Bus Module</h3> <ul> <li>Added J2534 Pass-Thru CAN plugin for communication between a computer and a vehicle.</li> <li>Added description, serial number and channel to QCanBusDeviceInfo, as far as supported by the various plugins.</li> <li>Introduced categorized logging to the CAN bus module which can be enabled by the <i>"qt.canbus"</i> and <i>"qt.canbus.plugins.<pluginname>"</i> filters.</li> <li>QCanBusFrame::isValid() now checks for invalid CAN FD payload lengths. E.g. 24 is a valid CAN FD payload length, but 28 is not.</li> </ul> <a name="qt-bluetooth-module"></a> <h3 id="qt-bluetooth-module">Qt Bluetooth Module</h3> <ul> <li>Ported Bluetooth Low Energy Central role implementation to BlueZ's DBus LE API (minimum version to enable is BlueZ 5.42).</li> </ul> <a name="new-modules"></a> <h2 id="new-modules">New Modules</h2> <p>No new modules were added in this version.</p> <a name="platform-changes"></a> <h2 id="platform-changes">Platform Changes</h2> <ul> <li>MSVC2013 support removed from the code base.</li> <li>Qt WebEngine now requires MSVC 2017 on Windows.</li> <li>QNX 6.6 no longer supported (note: QNX 7 remains fully supported).</li> <li>macOS 10.10 no longer supported.</li> <li>Improved Accessibility support on Win32 by adopting the Windows UI Automation framework.</li> <li>XCB: Support for missing 'dead keys' such as dasia and diaeresis.</li> <li>eglfs<ul> <li>Added support for framebuffer formats other than XRGB8888 (RGB565, ARGB8888).</li> <li>Added experimental screen cloning support (by scanning out the same framebuffer on multiple displays).</li> <li>Added support for operating with DRM render nodes (/dev/dri/renderDnn) in a headless mode transparent to applications.</li> <li>Added a makespec for Renesas R-Car M3.</li> <li>Added experimental backend for compositing Qt content with other hardware layers via VSP2 on Renesas devices.</li> </ul> </li> </ul> <a name="technology-preview-modules"></a> <h2 id="technology-preview-modules">Technology Preview Modules</h2> <ul> <li>Qt Remote Objects (TP3) - A module that allows you to easily share QObject interfaces (Signals/Slots/Properties) between processes or devices.</li> <li>Qt WebGL Streaming Plugin (TP2) - Stream applications to browsers over the network.</li> </ul> <a name="deprecated-modules"></a> <h2 id="deprecated-modules">Deprecated Modules</h2> <p>The following modules are part of the Qt 5.11 release, but are deprecated and considered for removal in subsequent releases of Qt:</p> <ul> <li>Qt Script</li> <li>Qt Quick Controls 1</li> </ul> <a name="list-of-api-changes"></a> <h2 id="list-of-api-changes">List of API Changes</h2> <p>The pages below contain a list of API changes in Qt 5.11:</p> <ul> <li><a href="newclasses511.html">New Classes and Functions in Qt 5.11</a></li> <li><a href="obsoleteclasses.html">Obsolete Classes</a></li> </ul> <a name="additions-to-other-qt-5-releases"></a> <h2 id="additions-to-other-qt-5-releases">Additions to Other Qt 5 Releases</h2> <ul> <li><a href="whatsnew510.html">What's New in Qt 5.10</a></li> <li><a href="whatsnew59.html">What's New in Qt 5.9</a></li> <li><a href="whatsnew58.html">What's New in Qt 5.8</a></li> <li><a href="whatsnew57.html">What's New in Qt 5.7</a></li> <li><a href="whatsnew56.html">What's New in Qt 5.6</a></li> <li><a href="whatsnew55.html">What's New in Qt 5.5</a></li> <li><a href="whatsnew54.html">What's New in Qt 5.4</a></li> <li><a href="whatsnew53.html">What's New in Qt 5.3</a></li> <li><a href="whatsnew52.html">What's New in Qt 5.2</a></li> <li><a href="whatsnew51.html">What's New in Qt 5.1</a></li> <li><a href="whatsnew50.html">What's New in Qt 5.0</a></li> </ul> </div> <!-- @@@whatsnew511.html --> </div> </div> </div> </div> </div> <div class="footer"> <p> <acronym title="Copyright">©</acronym> 2019 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners.<br/> The documentation provided herein is licensed under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License version 1.3</a> as published by the Free Software Foundation.<br/> Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. </p> </div> </body> </html>