| /**************************************************************************** |
| ** |
| ** 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 qmlapplications.html |
| \title QML Applications |
| \brief Essential documentation for QML application developers |
| |
| QML is a declarative language that allows user interfaces to be described in |
| terms of their visual components and how they interact and relate with one |
| another. It is a highly readable language that was designed to enable |
| components to be interconnected in a dynamic manner, and it allows components to |
| be easily reused and customized within a user interface. Using the \c QtQuick |
| module, designers and developers can easily build fluid animated user interfaces |
| in QML, and have the option of connecting these user interfaces to any back-end |
| C++ libraries. |
| |
| \section2 What is QML? |
| |
| QML is a user interface specification and programming language. |
| It allows developers and designers alike to create highly performant, fluidly |
| animated and visually appealing applications. QML offers a highly readable, |
| declarative, JSON-like syntax with support for imperative JavaScript |
| expressions combined with dynamic property bindings. |
| |
| The QML language and engine infrastructure is provided by the \l {Qt QML} module. |
| For in-depth information about the QML language, please see the |
| \l{Qt QML} module documentation. |
| |
| The following pages contain more information about QML: |
| \list |
| \li \l{First Steps with QML} - begin using QML with these examples |
| \li \l{Qt Creator: Creating Qt Quick Projects}{Creating Qt Quick Projects in Qt Creator} |
| \li \l{The QML Reference} - reference about the QML constructs and features |
| \li \l{qml-codingconventions.html}{QML Coding Conventions} |
| \li \l{Glossary of QML Terms} |
| \endlist |
| |
| \section2 What is Qt Quick? |
| |
| Qt Quick is the standard library of types and functionality for QML. It |
| includes visual types, interactive types, animations, models and views, |
| particle effects and shader effects. A QML application developer can get |
| access to all of that functionality with a single import statement. |
| |
| The \c QtQuick QML library is provided by the \l{Qt Quick} module. |
| For in-depth information about the various QML types and other functionality |
| provided by Qt Quick, please see the \l{Qt Quick} module documentation. |
| |
| \section1 QML User Interfaces |
| |
| For creating or customizing graphical user interfaces, Qt Quick adds visual |
| types, animation types, and other QML types in addition to the standard QML |
| types from Qt QML. \l{Qt Creator: Editing QML Files in Design Mode}{Qt Quick Designer} |
| is integrated within Qt Creator and supports \c{QtQuick 2} from Qt Creator |
| version 2.7 and onwards. |
| |
| |
| \list |
| \li \l{qtquick-usecase-visual.html}{Visual types in QML} |
| \li \l{qtquick-usecase-userinput.html}{Responding to User Input in QML} |
| \li \l{qtquick-usecase-animations.html}{Animations in QML} |
| \li \l{qtquick-usecase-text.html}{Displaying Text in QML} |
| \li \l{qtquick-usecase-layouts.html}{Layouts in QML} |
| \li \l{qtquick-usecase-styling.html}{Style and Theme Support} |
| \li \l{qtquick-usecase-integratingjs.html}{Integrating JavaScript in QML} |
| \li \l{Scalability} |
| \endlist |
| |
| \section2 Buttons, Menus, and other Controls |
| |
| For a set of basic UI controls, the \l{Qt Quick Controls} module implements |
| several controls such as buttons, menus, and views. These controls come with |
| several built-in styles that can be used, and also support the creation |
| of custom styles. |
| |
| \list |
| \li \l{Qt Quick Controls Guidelines} |
| \li \l{Qt Quick Templates 2} |
| \endlist |
| |
| \section2 Special Effects |
| |
| Several Qt modules provide types for creating special effects in applications. |
| Their respective pages contain more information about specific uses. |
| |
| \list |
| \li \l{Using the Qt Quick Particle System}{Particle Effects} |
| \li \l{Graphical Effects} - for creating image composition effects. |
| \endlist |
| |
| \section2 Viewing Web Content in QML Applications |
| |
| The QML types, \l WebEngineView and \l WebView, render and display dynamic |
| web content. The only difference between the two is that the latter uses a |
| native web view if available. Both these types can load a URL or an HTML |
| string. To read more about them and view code |
| samples, see \l{Qt WebEngine} and \l{Qt WebView}. |
| |
| \section2 Sensors, Gestures, and Touch Interfaces |
| |
| The \l{Qt Sensors} module allows applications to read information from |
| sensors such as accelerometers and tilt sensors. There is a common QML API for |
| different platforms and can be extended in C++. |
| |
| \list |
| \li \l{Qt Sensors QML Types} |
| \li \l{Qt Sensors Examples} |
| \li \l{Compatibility Map} - lists support level for different mobile platforms |
| \endlist |
| |
| \section1 Multimedia Content |
| |
| The \l{Qt Multimedia} module enables applications to handle various media |
| content with a convenient set of QML types. These QML types can be extended |
| in C++. |
| |
| \list |
| \li \l Multimedia |
| \list |
| \li \l{Audio Overview} |
| \li \l{Video Overview} |
| \li \l{Camera Overview} |
| \li \l{Radio Overview} |
| \li \l{Qt Audio Engine QML Types}{Qt Audio Engine} - for 3D positional audio |
| playback and content management. |
| \endlist |
| \endlist |
| |
| \section1 Mobile Devices |
| |
| Several Qt modules provide QML APIs for networked and mobile devices. The QML |
| types provide access to the Bluetooth, Near-Field Communications (NFC), and |
| GPS-enabled devices. |
| |
| \list |
| \li \l{Qt Positioning} |
| \li \l{Qt Location} |
| \li \l{Qt Bluetooth} |
| \li \l{Qt NFC} |
| \endlist |
| |
| For more information, visit the \l{Networking and Connectivity} and |
| \l{Mobile APIs} pages. |
| |
| \section1 Code Samples and Demos |
| |
| To learn more about uses of QML code, there are several code samples which show |
| how QML types are used. In addition, there are several demos which show how |
| QML code is used in applications. |
| |
| \list |
| \li \l{Getting Started Programming with Qt Quick} - a tutorial showing the creation of a simple QML text editor. |
| \li \l{Qt Quick Examples and Tutorials} |
| \endlist |
| |
| \section1 Advanced Application Development Topics |
| |
| \list |
| \li \l{Integrating QML and C++} |
| \li \l{qtquick-deployment.html}{Deploying QML Applications} |
| \li \l{qtquick-bestpractices.html}{Best Practices for QML and Qt Quick} |
| \li \l{qtquick-performance.html}{Performance Considerations and Suggestions} |
| \li \l{qtquick-internationalization.html}{Internationalization and Localization} |
| \li Testing and Debugging |
| \list |
| \li \l{qtquick-qmlscene.html}{Prototyping with qmlscene} |
| \li \l{qtquick-debugging.html}{Debugging QML Applications} |
| \li \l{Qt Quick Test}{Qt Quick Test: QML Unit Testing Framework} |
| \endlist |
| \endlist |
| |
| \section1 Other QML Modules |
| |
| Qt Quick only provides basic visual types and much of Qt's functionality is |
| exposed to QML through other modules. If you require the functionality of those |
| modules, you should browse their QML documentation. |
| |
| The \l{All QML APIs by Module} contains a list of all QML modules |
| in Qt 5. |
| |
| \section1 Related Topics |
| |
| \list |
| \li \l{Porting QML Applications to Qt 5} |
| \endlist |
| |
| */ |