<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- whatsnew58.qdoc --> <title>What's New in Qt 5.8 | Qt 5.9</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.9</a></td><td >What's New in Qt 5.8</td></tr></table><table class="buildversion"><tr> <td id="buildversion" width="100%" align="right">Qt 5.9.4 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-8">New Features in Qt 5.8</a></li> <li class="level2"><a href="#qt-core-module">Qt Core Module</a></li> <li class="level2"><a href="#qt-gui-module">Qt GUI 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-webengine-module">Qt WebEngine Module</a></li> <li class="level2"><a href="#qt-bluetooth-module">Qt Bluetooth Module</a></li> <li class="level2"><a href="#qt-multimedia-module">Qt Multimedia Module</a></li> <li class="level2"><a href="#qt-network-module">Qt Network Module</a></li> <li class="level2"><a href="#qt-websockets-module">Qt WebSockets Module</a></li> <li class="level2"><a href="#qt-charts-module">Qt Charts Module</a></li> <li class="level2"><a href="#qt-3d-module">Qt 3D Module</a></li> <li class="level2"><a href="#embedded-platforms">Embedded Platforms</a></li> <li class="level2"><a href="#configurability-qt-lite-project">Configurability (Qt Lite Project)</a></li> <li class="level1"><a href="#new-modules">New Modules</a></li> <li class="level1"><a href="#technology-preview-modules">Technology Preview Modules</a></li> <li class="level1"><a href="#deprecated-functionality">Deprecated Functionality</a></li> <li class="level1"><a href="#removed-functionality">Removed Functionality</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.8</h1> <span class="subtitle"></span> <!-- $$$whatsnew58.html-description --> <div class="descr"> <a name="details"></a> <a name="new-features-in-qt-5-8"></a> <h2 id="new-features-in-qt-5-8">New Features in Qt 5.8</h2> <a name="qt-core-module"></a> <h3 >Qt Core Module</h3> <ul> <li>Added at(), operator[], mid(), right(), and left() functions to QLatin1String.</li> </ul> <a name="qt-gui-module"></a> <h3 >Qt GUI Module</h3> <ul> <li>Added uniqueId() and rotation() to QTouchEvent.</li> <li>Added support for dithering when converting to all QImage formats.</li> <li>Made the QOpenGLTextureBlitter API public; used particularly in Qt Wayland.</li> <li>Added capHeight() to QFontMetrics, QFontMetricsF, and QRawFont.</li> <li>Added selection handles on Android, with an edit menu for copy and paste.</li> </ul> <a name="qt-quick-module"></a> <h3 >Qt Quick Module</h3> <ul> <li>Refactored the Qt Quick scene graph to remove its OpenGL dependency, enabling backends based on other graphics APIs such as Vulkan or Direct3D.</li> <li>Integrated the software renderer (previously known as the Qt Quick 2D Renderer) for Qt Quick as a proper scene graph backend.</li> <li>Implemented support for partial updates in the software renderer.</li> <li>Added an experimental Direct3D 12 backend.</li> <li>Implemented caching of code and data structures generated from <code>.qml</code> and <code>.js</code> files to disk, reducing start-up time and memory consumption. The resulting <code>.qmlc</code> and <code>.jsc</code> cache files are memory mapped.</li> <li>Cleaned up touch and mouse event delivery, and added a new internal class <code>QQuickPointerEvent</code> for this purpose.</li> </ul> <a name="qt-quick-controls-2-module"></a> <h3 >Qt Quick Controls 2 Module</h3> <ul> <li>Added new QML types: Dialog, DialogButtonBox, MenuSeparator, RoundButton, and ToolSeparator.</li> <li>Added ripple effects to the Material style.</li> <li>Added hover effects to Material and Universal styles</li> <li>Added a <i>System</i> theme to Material and Universal styles</li> <li>Added new experimental <i>platform</i> QML types: <code>MenuBar</code>, <code>Menu</code>, <code>SystemTrayIcon</code>, <code>ColorDialog</code>, <code>FontDialog</code>, <code>MessageDialog</code>, <code>FileDialog</code>, and <code>FolderDialog</code>.</li> </ul> <a name="qt-webengine-module"></a> <h3 >Qt WebEngine Module</h3> <ul> <li>Based on Chromium 53.</li> <li>Updated requirements to MSVC 2015 Update 2 or later on Windows.</li> <li>Added view-source scheme support.</li> <li>Added support for spellchecking with custom .bdic files.</li> <li>Made tooltips (HTML5 global tile attribute) visible.</li> <li>Added support for metadata (<code>@include</code>, <code>@exclude</code>, <code>@match</code>, <code>@name</code>, and <code>@run-at</code>) in user scripts.</li> <li>QML: Enabled the use of custom dialogs and context menus.</li> <li>QML: on eglfs, took the built-in dialogs based on Qt Quick Controls 2 into use.</li> <li>Added support for printing.</li> <li>Added a setting to enable printing of CSS backgrounds.</li> </ul> <a name="qt-bluetooth-module"></a> <h3 >Qt Bluetooth Module</h3> <ul> <li>Added Bluetooth Low Energy Peripheral support on macOS, iOS, and <a href="build-sources.html#winrt">WinRT</a>.</li> </ul> <a name="qt-multimedia-module"></a> <h3 >Qt Multimedia Module</h3> <ul> <li>Added QAudio::convertVolume() and a matching QML method to convert audio volumes from one scale to another; for example, from logarithmic to linear scale.</li> <li>Added support for rendering YUV 4:2:2 (YUYV, UYVY) video frames to VideoOutput QML type.</li> </ul> <a name="qt-network-module"></a> <h3 >Qt Network Module</h3> <ul> <li>Added support for TLS-PSK ciphersuites on server side.</li> <li>Added support for configurable Diffie-Hellman parameters.</li> <li>Added support for HTTP/2 in Network Access Manager.</li> </ul> <a name="qt-websockets-module"></a> <h3 >Qt WebSockets Module</h3> <ul> <li>Added support for TLS-PSK ciphersuites on client and server side.</li> </ul> <a name="qt-charts-module"></a> <h3 >Qt Charts Module</h3> <ul> <li>Added a candlestick chart type.</li> </ul> <a name="qt-3d-module"></a> <h3 >Qt 3D Module</h3> <ul> <li>Focused on maturation: Bug fixes, improving performance and test coverage.</li> <li>Added a <i>paint to texture</i> feature using QPainter.</li> <li>Added optional support for issuing commands to Qt3D aspects (for example, from a profiler).</li> </ul> <a name="embedded-platforms"></a> <h3 >Embedded Platforms</h3> <ul> <li>Enhanced multi-screen capabilities and configurability with eglfs when running on KMS/DRM, both with GBM and EGLDevice/Stream.</li> <li>Added support for 90 and 180 degrees rotation of software-rendered content (QWidget) in eglfs.</li> </ul> <a name="configurability-qt-lite-project"></a> <h3 >Configurability (Qt Lite Project)</h3> <ul> <li>Qt 5.8 comes with a rewritten configuration system that allows for easy customization of Qt builds. The main focus of this feature is for the Device Creation, but it can also be used to tailor a Qt build for mobile or desktop platforms. The new configuration system allows removing individual pieces of functionality and APIs from Qt, creating a more lightweight set of libraries for deployment.</li> </ul> <a name="new-modules"></a> <h2 id="new-modules">New Modules</h2> <ul> <li>Qt Wayland Compositor<ul> <li>Provides a framework to develop a Wayland compositor.</li> </ul> </li> <li>Qt SCXML<ul> <li>Enables static and runtime integration of SCXML models into Qt code.</li> </ul> </li> <li>Qt Serial Bus<ul> <li>Provides access to various industrial serial buses and protocols, such as CAN and ModBus.</li> </ul> </li> </ul> <p>These modules were previously released as technology previews, and are now fully supported Qt add-on modules.</p> <a name="technology-preview-modules"></a> <h2 id="technology-preview-modules">Technology Preview Modules</h2> <ul> <li>Qt Gamepad<ul> <li>Enables Qt gaming applications to respond to gamepad input.</li> </ul> </li> <li>Qt Speech<ul> <li>Text to speech and speech recognition functionality. Currently only the text to speech features are released. Includes backends for several speech synthesizers on Windows, Linux, macOS, and Android.</li> </ul> </li> <li>Qt Network Authorization<ul> <li>Online authorization support with OAuth protocol, versions 1 and 2.</li> </ul> </li> </ul> <a name="deprecated-functionality"></a> <h2 id="deprecated-functionality">Deprecated Functionality</h2> <ul> <li>Qt Script</li> </ul> <p>Deprecated modules are still included in Qt 5.8, but are considered for removal in future releases.</p> <a name="removed-functionality"></a> <h2 id="removed-functionality">Removed Functionality</h2> <ul> <li>Qt Quick 2D Renderer (functionality has been merged into Qt Quick).</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.8:</p> <ul> <li><a href="newclasses58.html">New Classes and Functions in Qt 5.8</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="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> <!-- @@@whatsnew58.html --> </div> </div> </div> </div> </div> <div class="footer"> <p> <acronym title="Copyright">©</acronym> 2017 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>