aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/doc/src/qtqml.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/doc/src/qtqml.qdoc')
-rw-r--r--src/qml/doc/src/qtqml.qdoc182
1 files changed, 53 insertions, 129 deletions
diff --git a/src/qml/doc/src/qtqml.qdoc b/src/qml/doc/src/qtqml.qdoc
index e1ff693195..51a638bf4d 100644
--- a/src/qml/doc/src/qtqml.qdoc
+++ b/src/qml/doc/src/qtqml.qdoc
@@ -1,148 +1,92 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 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$
-**
-****************************************************************************/
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page qtqml-index.html
-\title Qt QML
-\brief The Qt QML module defines and implements the QML language
+\title Qt Qml
+\brief The Qt Qml module implements the QML language and offers APIs to register
+ types for it.
-The Qt QML module provides a framework for developing applications and libraries
-with the \l{QML Applications}{QML language}. It defines and implements the
+The Qt Qml module provides a framework for developing applications and libraries
+with the \l{The QML Reference}{QML language}. It defines and implements the
language and engine infrastructure, and provides an API to enable application
-developers to extend the QML language with custom types and integrate QML code
-with JavaScript and C++. The Qt QML module provides both a \l{Qt QML QML Types}
-{QML API} and a \l{Qt QML C++ Classes}{C++ API}.
-
-Note that while the Qt QML module provides the language and infrastructure
-for QML applications, the \l{Qt Quick} module provides many visual components,
-model-view support, an animation framework, and much more for building user
-interfaces.
-
-For those new to QML and Qt Quick, please see
-\l{QML Applications}
-for an introduction to writing QML applications.
+developers to \l{Registering QML Types and QML Modules}{register} custom QML types
+and modules and integrate QML code with JavaScript and C++. The Qt Qml module
+provides both a \l{Qt QML QML Types}{QML API} and a
+\l{Qt Qml C++ Classes}{C++ API}.
\section1 Using the Module
\section2 QML API
-The QML types in Qt QML are available through the \c QtQml import. To use the
-types, add the following import statement to your .qml file:
+\include {module-use.qdocinc} {using the qml api} {QtQml}
+
+The Qt QML module contains the QML framework and important QML types used in
+applications. The constructs of QML are described in the \l{The QML Reference}.
-\qml
-import QtQml
-\endqml
+The \l{Qt QML QML Types}{QML API} of the Qt QML module provides a number of
+\l{qtqml-typesystem-objecttypes.html}{QML Object Types},
+\l{qtqml-typesystem-valuetypes.html}{QML Value Types} and namespaces.
\section2 C++ API
-Using the \l{Qt QML 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 CMake and qmake.
+\include {module-use.qdocinc} {using the c++ api}
+
+The C++ API contains some
+\l{Important C++ Classes Provided By The Qt QML Module}{important classes}
+you should get familiar with. It also provides
+\l{Integrating with JavaScript values from C++}{types} to hold JavaScript
+values.
\section3 Building with CMake
-Use the \c find_package() command to locate the needed module components in the Qt6 package:
+\include {module-use.qdocinc} {building with cmake} {Qml}
-\snippet code/doc_src_qtqml.cmake 0
+To provide foreign QML type support for a non-QML library, locate
+the \c QmlIntegration module as follows:
-See also the \l{Build with CMake} overview.
+\snippet code/doc_src_qtqml.cmake 1
-\section3 Building with qmake
+See \l{qt6_generate_foreign_qml_types} for details.
-To configure the module for building with qmake, add the module as a value of the QT variable in the project's .pro file:
+\section3 Building with qmake
-\badcode
-QT += qml
-\endcode
+\include {module-use.qdocinc} {building_with_qmake} {qml}
-\section1 QML and QML Types
+\section1 Registering QML Types and QML Modules
-The Qt QML module contains the QML framework and important QML types used in
-applications. The constructs of QML are described in the \l{The QML Reference}.
+In order to register types for usage with QML you first need to define a
+\l{Writing QML Modules}{QML module}, preferably using \l{qt_add_qml_module} in CMake.
+Then, you can add C++ headers to your new module, and
+\l{Defining QML Types from C++}{define types} to be
+\l{Exposing Attributes of C++ Types to QML}{exposed to QML} in them.
-In addition to the \l{QML Basic Types}, the module comes with
-the following QML object types:
-\list
-\li \l Component
-\li \l QtObject
-\li \l Binding
-\li \l Connections
-\li \l Timer
-\endlist
+\section1 Tweaking the engine
-The \l{QtQml::Qt}{Qt} global object provides useful enums and functions
-for various QML types.
+There are a number of knobs you can turn to customize the behavior of the QML engine.
+The page on \l{Configuring the JavaScript Engine}{configuring the JavaScript engine}
+lists the environment variables you may use to this effect. The description of the
+\l{The QML Disk Cache}{QML Disk Cache} describes the options related to how your QML
+components are compiled and loaded.
-\section2 Lists and Models
+\section1 Articles and Guides
-New in Qt 5.1, the model types are moved to a submodule, \c QtQml.Models. The
-\l{Qt QML Models QML Types}{Qt QML Models} page has more information.
+These articles contain information about Qt Qml.
\list
-\li \l DelegateModel
-\li \l DelegateModelGroup
-\li \l ListElement
-\li \l ListModel
-\li \l ObjectModel
+ \li \l{The QML Reference}
+ \li \l{Qt Qml Tooling}
+ \li \l{Writing QML Modules}
+ \li \l{Singletons in QML}
\endlist
-\section1 JavaScript Environment for QML Applications
-
-JavaScript expressions allow QML code to contain application logic. Qt QML
-provides the framework for running JavaScript expressions in QML and from C++.
-
-These sections are from \l{The QML Reference}.
- \list
- \li \l{qtqml-javascript-topic.html}{Integrating QML and JavaScript}
- \li \l{qtqml-javascript-expressions.html}{Using JavaScript Expressions with QML}
- \li \l{qtqml-javascript-dynamicobjectcreation.html}{Dynamic QML Object Creation from JavaScript}
- \li \l{qtqml-javascript-resources.html}{Defining JavaScript Resources In QML}
- \li \l{qtqml-javascript-imports.html}{Importing JavaScript Resources In QML}
- \li \l{qtqml-javascript-hostenvironment.html}{JavaScript Host Environment}
- \endlist
-
-\section1 Integrating QML with C++ Applications
-
-The module also provides the framework for running QML applications.
-The QML framework allows QML code to contain JavaScript expressions and for
-the QML code to interact with C++ code.
+\section1 Reference
\list
-\li \l{Important C++ Classes Provided By The Qt QML Module}
-\li \l{Integrating QML and C++}
+ \li \l {Qt QML C++ Classes} {C++ Classes}
+ \li \l {Qt QML QML Types} {QML Types}
\endlist
-\omit
- \section1 Additional Frameworks
- \list
- \li \l{The Declarative State Machine Framework}
- \endlist
-\endomit
-
\section1 Licenses and Attributions
Qt QML is available under commercial licenses from \l{The Qt Company}.
@@ -157,24 +101,4 @@ modules under following permissive licenses:
\generatelist{groupsbymodule attributions-qtqml}
-\section1 Guides and Other Information
-
-Further information for writing QML applications:
-\list
-\li \l{The QML Reference}
-\li \l{QML Applications}
- - essential information for application development with QML and Qt Quick
-\li \l{Qt Quick} - a module which provides a set of QML types and C++ classes
- for building user interfaces and applications with QML
-\li \l{The QML Disk Cache}
- - how to fine tune if and where the QML engine caches compilation results.
-\endlist
-
-\section2 Reference
-\list
-\li \l{Qt QML C++ Classes}{C++ Classes}
-\li \l{Qt QML QML Types}{QML Types}
-\li \l{Qt QML Examples}{Examples}
-\endlist
-
*/