This file is indexed.

/usr/share/qt5/doc/qtdoc/qt5-intro.html is in qt5-doc-html 5.3.2-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qt5-intro.qdoc -->
  <title>What's New in Qt 5 | QtDoc 5.3</title>
  <link rel="stylesheet" type="text/css" href="style/offline.css" />
</head>
<body>
<div class="header" id="qtdocheader">
    <div class="main">
    <div class="main-rounded">
        <div class="navigationbar">
        <ul>
<li><a href="index.html">Qt 5.3</a></li>
<li>What's New in Qt 5</li>
<li id="buildversion">
Qt 5.3.2 Reference Documentation</li>
    </ul>
    </div>
</div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#qt-everywhere-on-mobile">Qt Everywhere on Mobile</a></li>
<li class="level1"><a href="#amazing-graphics-capability-and-performance">Amazing Graphics Capability and Performance</a></li>
<li class="level1"><a href="#qt-quick-in-qt-5">Qt Quick in Qt 5</a></li>
<li class="level1"><a href="#designing-ui-made-simpler">Designing UI Made Simpler</a></li>
<li class="level1"><a href="#sensor-and-location">Sensor and Location</a></li>
<li class="level1"><a href="#enginio-data-storage">Enginio Data Storage</a></li>
<li class="level1"><a href="#webkit-and-html5">WebKit and HTML5</a></li>
<li class="level1"><a href="#multimedia">Multimedia</a></li>
<li class="level1"><a href="#platform-specific-extras">Platform-specific Extras</a></li>
<li class="level1"><a href="#modularized-qt-libraries">Modularized Qt Libraries</a></li>
<li class="level2"><a href="#widgets-in-qt-5">Widgets in Qt 5</a></li>
<li class="level1"><a href="#qt-platform-abstraction">Qt Platform Abstraction</a></li>
<li class="level1"><a href="#new-connection-syntax">New Connection Syntax</a></li>
<li class="level1"><a href="#connectivity-and-networking">Connectivity and Networking</a></li>
<li class="level2"><a href="#extended-connectivity">Extended Connectivity</a></li>
<li class="level1"><a href="#json-support">JSON Support</a></li>
<li class="level1"><a href="#user-input">User Input</a></li>
<li class="level1"><a href="#related-topics">Related Topics</a></li>
</ul>
</div>
<h1 class="title">What's New in Qt 5</h1>
<span class="subtitle"></span>
<!-- $$$qt5-intro.html-description -->
<div class="descr"> <a name="details"></a>
<p>Qt 5 is the latest version of Qt. It enables developers to develop applications with intuitive user interfaces for multiple targets, faster than ever before. Qt 5 makes it easier to address the latest UI paradigm shifts that touch screens and tablets require.</p>
<p>Developers can be more productive and flexible with the improved support for JavaScript and QML in Qt 5, while still having the C++ foundation and Qt Widget support. The JavaScript backend powered by V8 and Qt <a href="../qtwebkit/webkit.html">WebKit</a> 2 will make HTML5 developers feel at home.</p>
<p>Qt 5 is highly compatible with Qt 4. It is possible for developers of Qt 4 applications to seamlessly move on to Qt 5 with their current functionality and gradually develop new things leveraging all the great items Qt 5 makes possible.</p>
<p>Cross-platform portability is made simpler in Qt 5, thanks to the new modularized codebase consisting of the <a href="qtmodules.html">essential and add-on</a> modules, and the consolidation of the <a href="qpa.html">Qt Platform Abstraction</a>.</p>
<p>The following sections summarize some of the key features that Qt 5 brings to the table.</p>
<a name="qt-everywhere-on-mobile"></a>
<h2>Qt Everywhere on Mobile</h2>
<p>Qt 5.2 introduces the production-ready ports of Qt on Android and iOS. Extensive work has gone into these two platforms and these ports now extend Qt’s multi-platform promise to cover desktop, embedded, and mobile platforms with just one framework, Qt.</p>
<p>With full support for Android, iOS, and Blackberry 10, Qt 5.2 is a great solution for targeting the mobile markets with one Qt-based mobile application code. It is fast and easy to bring existing desktop or embedded application to mobile, by simply recompiling it.</p>
<p>You can install several demo applications that show Qt on iOS and Android from the App Store and Google Play. On Android, we have a new <i>Qt Everywhere</i> demo as well as the Qt 5 launch demo available in Google Play. For iOS, we have <i>SubAttack</i> and <i>QtQuicksand</i> published in the App Store.</p>
<p>Demo applications:</p>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.digia.Qt5Intro">Introduction to Qt 5</a> (Google Play)</li>
<li><a href="https://play.google.com/store/apps/details?id=com.digia.Qt5Everywhere">Qt 5 Everywhere</a> (Google Play)</li>
<li><a href="https://itunes.apple.com/us/app/subattack/id659283830">SubAttack</a> (App Store)</li>
<li><a href="https://itunes.apple.com/us/app/qtquicksand/id666273528">QtQuicksand</a> (App Store)</li>
<li>Quick Forecast on <a href="https://itunes.apple.com/us/app/quick-forecast/id736658981">App Store</a> and <a href="https://play.google.com/store/apps/details?id=org.qtproject.quickforecast">Google Play</a></li>
<li>Qt Hangman on <a href="https://itunes.apple.com/us/app/qt-hangman/id762381104">App Store</a> and <a href="https://play.google.com/store/apps/details?id=com.digia.QtHangman">Google Play</a></li>
</ul>
<p>Platform pages:</p>
<ul>
<li><a href="android-support.html">Qt for Android</a></li>
<li><a href="http://qt-project.org/wiki/BlackBerry">Qt for BlackBerry</a></li>
<li><a href="ios-support.html">Qt for iOS</a></li>
</ul>
<table class="generic">
 <thead><tr class="qt-style"><th >Qt Everywhere demo on Nexus 7</th></tr></thead>
<tr valign="top" class="odd"><td ><p class="centerAlign"><img src="images/qt5_everywhere_demo.jpg" alt="" /></p></td></tr>
</table>
<a name="amazing-graphics-capability-and-performance"></a>
<h2>Amazing Graphics Capability and Performance</h2>
<p>Qt 5 uses an <a href="../qtopengl/opengl-module.html">OpenGL</a>-based scene graph to accelerate the graphics of Qt Quick, making it possible to do visually appealing user interfaces with animations, impressive graphical effects and particle systems, even on the constrained hardware environments of mobile and embedded devices.</p>
<table class="generic">
 <thead><tr class="qt-style"><th ><a href="../qtquick/qml-qtquick-shadereffect.html">ShaderEffect</a> on an <a href="../qtquick/qml-qtquick-image.html">Image</a></th></tr></thead>
<tr valign="top" class="odd"><td ><p class="centerAlign"><img src="images/qt5_shadereffect.jpg" alt="" /></p></td></tr>
</table>
<p>The benefits of this architectural change in the rendering engine are well demonstrated by the following projects:</p>
<ul>
<li><a href="http://qt-project.org/videos/watch/livecoding-video-effects-with-qt5">Livecoding video effects with Qt5</a> - The Big Buck Bunny you never saw before. Video effects created using Qt Quick.</li>
<li><a href="http://blog.qt.digia.com/2012/02/29/pimp-my-video-shader-effects-and-multimedia/">Pimp my video</a> - Video effects implemented using the shader language with QML.</li>
<li><a href="http://qt-project.org/wiki/QtMediaHub">QtMediaHub</a> - The power and convenience of Qt Quick.</li>
<li><a href="http://qt-project.org/wiki/Qt-RaspberryPi">QtonPi</a> - Good example of Qt 5 running on the low cost hardware, Raspberry PI.</li>
</ul>
<a name="qt-quick-in-qt-5"></a>
<h2>Qt Quick in Qt 5</h2>
<p><a href="../qtquick/qtquick-index.html">Qt Quick</a> provides the necessary infrastructure to develop QML applications. The latest version (v2.0) of this technology also introduces a set of new C++ classes as a replacement for the QDeclarative* equivalents in Qt Quick 1. New features in Qt Quick include:</p>
<ul>
<li><a href="../qtquick/qml-qtquick-canvas.html">Canvas</a> for drawing. Canvas provides an API that is similar to the HTML5 Canvas API, along with some additional features.</li>
<li><a href="../qtquick/qml-qtquick-shadereffect.html">Shader Effects</a> which enable GLSL shader programs to be integrated directly into QML code and applied to items and images.</li>
<li><a href="../qtquick/qtquick-effects-particles.html">Particle Effects</a> for creating a variety of 2D particle systems.</li>
<li><a href="../qtquick/qtquick-effects-sprites.html">Sprites</a> can be used in animating 2D graphical objects and as a source for particle systems.</li>
<li><a href="../qtquick/qtquick-localstorage-qmlmodule.html">Offline storage</a> is a JavaScript API that conforms with the HTML5 Web Database API for storing data in Qt Quick applications.</li>
<li><a href="../qtquick/qtquick-window-qmlmodule.html">Window</a> provides a top-level window and the Screen type for accessing a screen's resolution and other details. This is useful for desktop applications developed using Qt Quick.</li>
<li><a href="../qtquick/qtquick-visualcanvas-scenegraph.html">OpenGL-based rendering architecture</a> for optimal performance.</li>
</ul>
<table class="generic">
 <thead><tr class="qt-style"><th >Qt Quick's <a href="../qtquick/qtquick-particles-qmlmodule.html">Particle System</a></th></tr></thead>
<tr valign="top" class="odd"><td ><p class="centerAlign"><img src="images/qt5_particles.jpg" alt="" /></p></td></tr>
</table>
<p>Qt Quick's <a href="../qtquick/qtquick-effects-particles.html">Particle System</a></p>
<p>The <a href="../qtgraphicaleffects/qtgraphicaleffects-index.html">Qt Graphical Effects</a> module provides a number of ready-made effects for use in Qt Quick applications, including soft drop shadow, blur, glow and colorize.</p>
<table class="generic">
 <thead><tr class="qt-style"><th >Excerpts from the Qt Graphical Effects module</th></tr></thead>
<tr valign="top" class="odd"><td ><p class="centerAlign"><img src="images/qt5_graphicaleffects.jpg" alt="" /></p></td></tr>
</table>
<a name="designing-ui-made-simpler"></a>
<h2>Designing UI Made Simpler</h2>
<p>UI designing can be time consuming if there are not enough tools to help. Qt Quick does reduce the effort considerably compared to the traditional native (C or C++) approach, but the new <a href="../qtquickcontrols/qtquickcontrols-index.html">Qt Quick Controls</a> and <a href="../qtquicklayouts/qtquicklayouts-index.html">Qt Quick Layouts</a> take it a step further. These new modules provide ready-to-use UI controls and layouts to enable faster application development and with less code.</p>
<p>Qt Quick Controls and Qt Quick Layouts provide a vast set of UI controls ranging from the most basic <a href="../qtquickcontrols/qml-qtquick-controls-textfield.html">TextField</a> and Button to the more complex <a href="../qtquickcontrols/qml-qtquick-controls-tableview.html">TableView</a> and <a href="../qtquickcontrols/qml-qtquick-controls-tabview.html">TabView</a>. These controls are also made available in <a href="http://qt-project.org/doc/qtcreator/creator-using-qt-quick-designer.html">Qt Quick Designer</a>.</p>
<table class="generic">
 <thead><tr class="qt-style"><th >Controls touch example on Nexus 7</th></tr></thead>
<tr valign="top" class="odd"><td ><p class="centerAlign"><img src="images/quick_controls_touch_ex.jpg" alt="" /></p></td></tr>
</table>
<table class="generic">
 <thead><tr class="qt-style"><th >Component gallery example on Ubuntu 12.04</th></tr></thead>
<tr valign="top" class="odd"><td ><p class="centerAlign"><img src="images/qtquickcontrols-example-gallery.jpg" alt="" /></p></td></tr>
</table>
<a name="sensor-and-location"></a>
<h2>Sensor and Location</h2>
<p>Reacting to sensor value changes and locating a place on the world map are the common use cases supported on most portable devices. Now you can support such use cases in your Qt application using the <a href="../qtsensors/qtsensors-index.html">Qt Sensors</a> and <a href="../qtpositioning/qtpositioning-index.html">Qt Positioning</a> modules.</p>
<table class="generic">
 <thead><tr class="qt-style"><th >Accelerating SVG image</th><th >Location-based weather information</th></tr></thead>
<tr valign="top" class="odd"><td ><p class="centerAlign"><img src="images/qtsensors_accelbubble_ex.jpg" alt="" /></p></td><td ><p class="centerAlign"><img src="images/qtpositioning_weatherinfo_ex.jpg" alt="" /></p></td></tr>
</table>
<a name="enginio-data-storage"></a>
<h2>Enginio Data Storage</h2>
<p>Enginio is a storage service for applications. New in Qt 5.3, <a href="../qtenginiooverview/enginio-index.html">Enginio</a> combines a <i>no-SQL</i> object approach with JSON and Qt APIs to provide applications reliable and powerful storage capabilities. The C++ and QML APIs interact with the <a href="http://engin.io">Enginio Data Storage</a> servers from Digia.</p>
<ul>
<li><a href="http://engin.io">Enginio by Digia</a></li>
<li><a href="../qtenginiooverview/enginio-index.html">Enginio</a> - API for developers</li>
</ul>
<a name="webkit-and-html5"></a>
<h2>WebKit and HTML5</h2>
<p><a href="../qtwebkit/qtwebkit-index.html">Qt WebKit</a> is a web content rendering engine based on the open source <a href="../qtwebkit/webkit.html">WebKit</a> project featuring broad support for standard web technologies. The Qt <a href="../qtwebkit/webkit.html">WebKit</a> module provides integration with both Qt Quick and traditional widgets. The module brings the latest in HTML5 advancements to Qt 5, including CSS filters, animations and video, and Canvas and WebGL.</p>
<a name="multimedia"></a>
<h2>Multimedia</h2>
<p><a href="../qtmultimedia/qtmultimedia-index.html">Qt Multimedia</a> provides a rich set of QML types and C++ classes to handle multimedia content. It also provides necessary APIs to access the camera and radio functionality. Qt 5 brings the Qt Multimedia module into the set of essential modules with support on all major platforms.</p>
<table class="generic">
 <thead><tr class="qt-style"><th >Video embedded into a Qt Quick application with a displacement effect</th></tr></thead>
<tr valign="top" class="odd"><td ><p class="centerAlign"><img src="images/qt5_video.jpg" alt="" /></p></td></tr>
</table>
<a name="platform-specific-extras"></a>
<h2>Platform-specific Extras</h2>
<p>Qt is a cross-platform development framework enabling you to target multiple platforms with a single codebase. It provides common APIs across all supported platforms to access a feature without having to worry about how that feature is implemented on a platform. In some applications there will be a need to use a platform-specific feature, and that's when the following modules can be useful:</p>
<ul>
<li>Qt Android Extras enables you to integrate Java code into your Qt application.</li>
<li>Qt Mac Extras enables you to access specific features on Mac OS X.</li>
<li>Qt Windows Extras enables you to use Windows-specific features such as jump lists, progress indicator on a taskbar button, and so on.</li>
<li><a href="../qtx11extras/qtx11extras-index.html">Qt X11 Extras</a> enables you to access the display configuration on Linux (X11).</li>
</ul>
<a name="modularized-qt-libraries"></a>
<h2>Modularized Qt Libraries</h2>
<p>Qt 5 splits the Qt libraries into domain specific libraries and modules. This means that an application can choose which libraries it requires and only compile, use and deploy those.</p>
<p>For a complete list of modules and libraries, see <a href="qtmodules.html">all Qt modules</a>.</p>
<a name="widgets-in-qt-5"></a>
<h3>Widgets in Qt 5</h3>
<p>The <a href="../qtwidgets/qtwidgets-index.html">Qt Widgets</a> have been separated into their own module in Qt 5, the Qt Widgets module. It is part of the essential modules.</p>
<table class="generic">
 <thead><tr class="qt-style"><th >Screen capture of a widget application.</th></tr></thead>
<tr valign="top" class="odd"><td ><p class="centerAlign"><img src="images/qt5_widgets.jpg" alt="" /></p></td></tr>
</table>
<p>Designing the UI for widget-based applications can be quick with <a href="../qtdesigner/qtdesigner-manual.html">Qt Designer</a>.</p>
<a name="qt-platform-abstraction"></a>
<h2>Qt Platform Abstraction</h2>
<p>The windowing system dependent parts of Qt have been completely rewritten for Qt 5, based on the Qt Platform Abstraction, a plugin architecture which allows Qt to dynamically load a windowing system integration based on what system it is running on. This gives several benefits:</p>
<ul>
<li>Centralize the windowing system integration codebase into classes shared for all platforms.</li>
<li>Simplify the work required when porting Qt to new platforms.</li>
<li>Remove the windowing system dependency from Qt, making it possible to have the same Qt binaries run against multiple windowing systems. For instance, the Qt Linux binaries can run against both X11 and Wayland.</li>
</ul>
<a name="new-connection-syntax"></a>
<h2>New Connection Syntax</h2>
<p>In addition to the still available well known way to connect signals and slots, new overloads of QObject::connect have been added allowing you to connect signals and slot using pointer to member functions:</p>
<pre class="cpp"><span class="type"><a href="../qtcore/qobject.html">QObject</a></span><span class="operator">::</span>connect(sender<span class="operator">,</span> <span class="operator">&amp;</span>Sender<span class="operator">::</span>valueChanged<span class="operator">,</span> receiver<span class="operator">,</span> <span class="operator">&amp;</span>Receiver<span class="operator">::</span>updateValue);</pre>
<p>The new syntax provides compile time checking of the compatibility between signals and slots, automatic conversion of the arguments if there is an implicit cast between the types, and solve many problems occurring because of typedef or namespaces.</p>
<p>Additionally, if your compiler supports C++11 lambdas, you can even connect directly to a lambda function.</p>
<pre class="cpp">connect(sender<span class="operator">,</span> <span class="operator">&amp;</span><span class="type"><a href="../qtcore/qobject.html">QObject</a></span><span class="operator">::</span>destroyed<span class="operator">,</span> <span class="operator">[</span><span class="operator">=</span><span class="operator">]</span>(){ <span class="keyword">this</span><span class="operator">-</span><span class="operator">&gt;</span>m_objects<span class="operator">.</span>remove(sender); });</pre>
<a name="connectivity-and-networking"></a>
<h2>Connectivity and Networking</h2>
<p>Qt 5 provides better support for IPv6 and dual mode networks. Most applications using host names and network layer transparent protocols can now gain IPv6 support transparently. Such applications can also choose to receive both IPv4 and IPv6 connections or bind to only one of the two connection types. In the case of outgoing HTTP connections using <tt>QNetworkAccessManager</tt>, both IPv4 and IPv6 connections are attempted in parallel, and the one that succeeds first is used. This is useful in environments where one of the two types has limited connectivity.</p>
<p>Qt 5 also provides better ways to handle TCP socket-based connections and SSL certificates. This means developers can now:</p>
<ul>
<li>bind a TCP socket to an IP address before connecting,</li>
<li>verify an SSL certificate chain,</li>
<li>and access legacy systems.</li>
</ul>
<p>Stricter client authentication is one of the primary concerns for many applications handling confidential or critical data. The opaque Private Keys support in Qt 5 enables applications to read private keys from devices such as PKCS#11 dongles for stricter client authentication. The <a href="http://git.iksaif.net/?p=qsslkey-p11.git">qsslkey example</a> illustrates reading private keys from a device.</p>
<a name="extended-connectivity"></a>
<h3>Extended Connectivity</h3>
<p>The connectivity options are endless with Qt 5. The two new modules, <a href="whatsnew53.html#qt-bluetooth">Qt Bluetooth</a> and Qt NFC, enable developers to add support for sophisticated ways to connect and share information in their application. These new modules are supported on Linux (with BlueZ 4.x) and <a href="http://qt-project.org/wiki/BlackBerry">BlackBerry 10</a> platforms.</p>
<a name="json-support"></a>
<h2>JSON Support</h2>
<p>Qt applications that use simple data structures to store small amount of data, can now choose to use JSON documents over the complex database backends that need necessary drivers or plugins to access data. The fact that JSON is a text-based open standard derived from JavaScript, makes it the obvious choice for QML applications as well.</p>
<p>The Qt Core provides a set of classes to enable parsing and generating JSON documents. These classes also allow you to convert between an in-memory binary representation of JSON to a standard textual JSON format. The goal is to make common operations on JSON faster.</p>
<a name="user-input"></a>
<h2>User Input</h2>
<p>Qt 4 already had support for handling multi-point touch input in C++. Qt 5 extends this support to include Qt Quick, covering all the information about the touch points, including the touch position, pressure, and velocity.</p>
<p>The mouse event handling in Qt 5 has been improved from its predecessor. Applications have more control to handle mouse events in Qt Quick. The mouse area in a QML document can propagate the mouse wheel and click events and also ignore propagated events.</p>
<p>Besides this, Qt 5 adds support for more mouse buttons on platforms where this is supported. This comes in handy for gaming applications developed using Qt.</p>
<a name="related-topics"></a>
<h2>Related Topics</h2>
<ul>
<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>
<li><a href="portingguide.html">Porting Guide</a></li>
</ul>
</div>
<!-- @@@qt5-intro.html -->
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2014 Digia Plc and/or its
   subsidiaries. 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>    Digia, Qt and their respective logos are trademarks of Digia Plc     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>