/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the documentation of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \page qt5-intro.html \title What's New in Qt 5 \brief Qt 5 features and its benefits 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. 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. HTML5 developers will feel at home with the Web offering that includes Chromium-based Qt WebEngine and Qt WebChannel. 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. Cross-platform portability is made simpler in Qt 5, thanks to the new modularized codebase consisting of the \l{All Modules}{essential and add-on} modules, and the consolidation of the \l{Qt Platform Abstraction}. The following sections summarize some of the key features that Qt 5 brings to the table. \section1 Qt Everywhere on Mobile \raw HTML
|
\endraw
Qt now comes with production-ready ports for Android, iOS, and WinRT.
Extensive work has gone into these platform
ports, which now extend Qt’s multi-platform promise to cover desktop,
embedded, and mobile platforms.
\raw HTML
\endraw With full support for Android, iOS, and WinRT, Qt is a great solution for targeting the mobile markets with a single codebase. It is fast and easy to bring existing desktop or embedded application to mobile, by simply recompiling it. \raw HTML \endraw You can install several demo applications that showcase the power of Qt on these mobile platforms. Here is a small list of such applications: \raw HTML \endraw Demo applications: \list \li \l{Google Play: Introduction to Qt 5}{Introduction to Qt 5} (Google Play) \li \l{Google Play: Qt 5 Everywhere}{Qt 5 Everywhere} (Google Play) \li \l{iTunes: SubAttack}{SubAttack} (App Store) \li \l{iTunes: QtQuicksand}{QtQuicksand} (App Store) \li Quick Forecast on \l{iTunes: Quick Forecast}{App Store}, \l{Google Play: Quick Forecast}{Google Play}, and \l{Windows Store: QuickForeCast}{Windows Store}. \li Qt Hangman on \l{iTunes: Qt Hangman}{App Store} and \l{Google Play: Qt Hangman}{Google Play} \li Flyingbus on \l{iTunes: Flyingbus}{App Store} and \l{Google Play: Flyingbus}{Google Play} \endlist Platform pages: \list \li \l{Qt for Android} \li \l{Qt for iOS} \li \l{Qt for WinRT} \endlist \raw HTML | \endraw \image qt5_everywhere_demo.jpg \caption Qt Everywhere demo on Nexus 7 \raw HTML |
| \endraw \image qt5_shadereffect.jpg \caption ShaderEffect on an \l Image \raw HTML |
\endraw
Qt 5 uses an OpenGL-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.
\raw HTML
\endraw The benefits of this architectural change in the rendering engine are well demonstrated by the following projects: \list \li \l{Livecoding video effects with Qt5} - The Big Buck Bunny you never saw before. Video effects created using Qt Quick. \li \l{Pimp my video} - Video effects implemented using the shader language with QML. \li \l{QtMediaHub} - The power and convenience of Qt Quick. \li \l{QtonPi} - Good example of Qt 5 running on the low cost hardware, Raspberry PI. \endlist \raw HTML |
| \endraw \l{Qt Quick} 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: \list \li \l Canvas for drawing. Canvas provides an API that is similar to the HTML5 Canvas API, along with some additional features. \li \l{ShaderEffect}{Shader Effects} which enable GLSL shader programs to be integrated directly into QML code and applied to items and images. \li \l{Using the Qt Quick Particle System}{Particle Effects} for creating a variety of 2D particle systems. \li \l{Sprite Animations}{Sprites} can be used in animating 2D graphical objects and as a source for particle systems. \li \l{Qt Quick Local Storage QML Types}{Offline storage} is a JavaScript API that conforms with the HTML5 Web Database API for storing data in Qt Quick applications. \li \l{Qt Quick Window QML Types}{Window} 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 \l{Qt Quick Scene Graph}{OpenGL-based rendering architecture} for optimal performance. \endlist \raw HTML | \endraw \image qt5_particles.jpg \caption Qt Quick's \l{Qt Quick Particles QML Types}{Particle System} \raw HTML |
| \endraw The \l {qtgraphicaleffects-index.html}{Qt Graphical Effects} module provides a number of ready-made effects for use in Qt Quick applications, including soft drop shadow, blur, glow and colorize. \raw HTML | \endraw \image qt5_graphicaleffects.jpg \caption Excerpts from the Qt Graphical Effects module \raw HTML |
| \endraw \image qtquickcontrols2-material.png \caption Qt Quick Controls 2 Material style \raw HTML |
\endraw
UI designing can be time consuming if there are not enough tools to help.
Qt Quick reduces the effort considerably compared to the traditional
native (C or C++) approach, especially if the \l{Qt Quick Controls} or
\l{Qt Quick Controls 2} and \l{Qt Quick Layouts} modules are used. These
modules provide ready-to-use UI controls and layouts to enable faster
application development with less code. For a comparison of the two sets of
controls, see \l {Differences between Qt Quick Controls}.
\raw HTML
\endraw Qt Quick Controls and Qt Quick Layouts provide a vast set of UI controls ranging from the most basic text field and button to the more complex stack view and tumbler. The controls are also made available in \l{Qt Creator: Using Qt Quick Designer}{Qt Quick Designer}. \raw HTML |
| \endraw \image qtsensors_accelbubble_ex.jpg \caption Accelerating SVG image \raw HTML | \endraw \image qtpositioning_weatherinfo_ex.jpg \caption Location-based weather information \raw HTML |
| \endraw \image qtwebengine_quicknanobrowser.jpg \caption Qt Quick nano browser \raw HTML |
\endraw
\l{Qt WebEngine} is a web content rendering engine based on Chromium
featuring broad support for standard web technologies. It 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.
\raw HTML
\endraw This Chromium-based Web Engine support in Qt is complemented with \l{Qt WebChannel}, which bridges the gap between QML/C++ and HTML/JavaScript. It enables sharing QObjects from QML/C++ with HTML/JavaScript-based clients. \raw HTML | |
| \endraw \l {Qt Multimedia} 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. \raw HTML | \endraw \image qt5_video.jpg \caption Video embedded into a Qt Quick application with a displacement effect \raw HTML | |
| \endraw \image qt5_widgets.jpg \caption Screen capture of a widget application. \raw HTML |
| \endraw In today's world, location and maps information is more widely used, be it to look up nearby restaurants or plan commute to the office. With Qt, it is now possible to cater to these use cases by consuming map data provided by the third-party vendors. The \l{QtLocation}{Qt Location} module provides the APIs and the necessary backend to fetch map data from some of the popular third-party mapping solutions. Here is a snapshot of the demo application running on Android, presenting OpenStreetMap data from \l {http://www.mapquest.com/}{www.mapquest.com}. \raw HTML | \endraw \image qtlocation-mapviewer-demo.jpg \caption Mapviewer example screenshot \raw HTML |