/**************************************************************************** ** ** Copyright (C) 2017 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 qtquick-index.html \title Qt Quick \brief The Qt Quick module implements the "standard library" for QML The Qt Quick module is the standard library for writing QML applications. While the \l{Qt QML} module provides the QML engine and language infrastructure, the Qt Quick module provides all the basic types necessary for creating user interfaces with QML. It provides a visual canvas and includes types for creating and animating visual components, receiving user input, creating data models and views and delayed object instantiation. The Qt Quick module provides both a \l{Qt Quick QML Types}{QML API} which supplies QML types for creating user interfaces with the QML language, and a \l{Qt Quick C++ Classes}{C++ API} for extending QML applications with C++ code. \note A set of Qt Quick-based UI controls is also available to create user interfaces. See \l{Qt Quick Controls} for more information. For those new to QML and Qt Quick, please see \l{QML Applications} for an introduction to writing QML applications. \section1 Using the Module \section2 QML API The QML types in Qt Quick are available through the \c QtQuick import. To use the types, add the following import statement to your .qml file: \qml import QtQml \endqml \section2 C++ API Using the \l{Qt Quick C++ Classes}{C++ API} requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including \l{CMake Documentation}{CMake} and \l{qmake}. \section3 Building with CMake Use the \c find_package() command to locate the needed module components in the Qt6 package: \snippet code/doc_src_qtquick.cmake 0 See also the \l{Build with CMake} overview. \section3 Building with qmake To configure the module for building with qmake, add the module as a value of the QT variable in the project's .pro file: \snippet code/doc_src_qtquick.pro 0 \section1 Important Concepts in Qt Quick Qt Quick provides everything needed to create a rich application with a fluid and dynamic user interface. It enables user interfaces to be built around the behavior of user interface components and how they connect with one another, and it provides a visual canvas with its own coordinate system and rendering engine. Animation and transition effects are a first class concept in Qt Quick, and visual effects can be supplemented through specialized components for particle and shader effects. \list \li \l{Important Concepts In Qt Quick - The Visual Canvas}{The Visual Canvas} \li \l{Important Concepts In Qt Quick - User Input}{User Input} \li \l{Important Concepts In Qt Quick - Positioning}{Positioning} \li \l{Important Concepts in Qt Quick - States, Transitions and Animations}{States, Transitions And Animations} \li \l{Important Concepts In Qt Quick - Data - Models, Views and Data Storage}{Data - Models, Views and Data Storage} \li \l{Important Concepts In Qt Quick - Graphical Effects}{Particles And Graphical Effects} \li \l{Important Concepts In Qt Quick - Convenience Types}{Convenience Types} \endlist When using the \c QtQuick module, you will need to know how to write QML applications using the QML language. In particular, QML Basics and QML Essentials from the \l{QML Applications} page. To find out more about using the QML language, see the \l{Qt QML} module documentation. \section1 C++ Extension Points \list \li \l{C++ Extension Points Provided By Qt Quick}{C++ Extension Points} \list \li \l{user-defined-qquickitem-derived-types}{Creating User-Defined QQuickItem-Derived Types} \li \l{scene-graph-related-classes}{Scene Graph-Related Classes} \li \l{pixmap-and-threaded-image-support}{Pixmap and Threaded Image Support} \endlist \endlist \section1 Licenses and Attributions Qt Quick is available under commercial licenses from \l{The Qt Company}. In addition, it is available under free software licenses. Since Qt 5.4, these free software licenses are \l{GNU Lesser General Public License, version 3}, or the \l{GNU General Public License, version 2}. See \l{Qt Licensing} for further details. \section1 Reference Documentation Additional Qt Quick information: \list \li \l{Qt Quick C++ Classes} - the C++ API provided by the Qt Quick module \li \l{Qt Quick QML Types} - a list of QML types provided by the \c{QtQuick} import \list \li \l{Qt Quick Local Storage QML Types}{Local Storage} - a submodule containing a JavaScript interface for an SQLite database \li \l{Qt Quick Particles QML Types}{Particles} - provides a particle system for Qt Quick \li \l{Qt Quick Layouts}{Layouts} - provides layouts for arranging Qt Quick items \li \l{Qt Quick Test QML Types}{Tests} - contains types for writing unit test for a QML application \endlist \li \l{Qt Quick Examples and Tutorials} \li \l{Best Practices for QML and Qt Quick}{Qt Quick Guidelines} \endlist Further information for writing QML applications: \list \li \l{QML Applications} - essential information for application development with QML and Qt Quick \li \l{Qt QML} - documentation for the Qt QML module, which provides the QML engine and language infrastructure \endlist */