1// Copyright (C) 2017 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
6\title The QML Reference
7\brief A multi-paradigm language for application development
9QML is a multi-paradigm language for creating highly dynamic applications. With
10QML, application building blocks such as UI components are \e declared and
11various properties set to define the application behavior. Application behavior
12can be further scripted through JavaScript, which is a subset of the language.
13In addition, QML heavily uses Qt, which allows types and other Qt features to
14be accessible directly from QML applications.
16This reference guide describes the features of the QML language. Many of the
17QML types in the guide originate from the \l{Qt QML} or \l{Qt Quick}
21 \li \l{qtqml-syntax-basics.html}{QML Syntax Basics}
23 \li \l{qtqml-syntax-imports.html}{Import Statements}
24 \li \l{qtqml-syntax-basics.html#object-declarations}{Object Declarations}
26 \li \l{qtqml-syntax-basics.html#child-objects}{Child Objects}
28 \li \l{qtqml-syntax-basics.html#comments}{Comments}
31 \li \l{qtqml-syntax-objectattributes.html}{QML Object Attributes}
33 \li \l{qtqml-syntax-objectattributes.html#the-id-attribute}{The \e id Attribute}
34 \li \l{qtqml-syntax-objectattributes.html#property-attributes}{Property Attributes}
35 \li \l{qtqml-syntax-objectattributes.html#signal-attributes}{Signal Attributes}
36 \li \l{qtqml-syntax-objectattributes.html#method-attributes}{Method Attributes}
37 \li \l{qtqml-syntax-objectattributes.html#attached-properties-and-attached-signal-handlers}{Attached Properties and Attached Signal Handlers}
38 \li \l{qtqml-syntax-objectattributes.html#enumeration-attributes}{Enumeration Attributes}
41 \li \l{qtqml-syntax-propertybinding.html}{Property Binding}
43 \li \l{qtqml-syntax-signals.html}{Signal and Handler Event System}
45 \li \l{qtqml-javascript-topic.html}{Integrating QML and JavaScript}
47 \li \l{qtqml-javascript-expressions.html}{Using JavaScript Expressions with QML}
48 \li \l{qtqml-javascript-dynamicobjectcreation.html}{Dynamic QML Object Creation from JavaScript}
49 \li \l{qtqml-javascript-resources.html}{Defining JavaScript Resources In QML}
50 \li \l{qtqml-javascript-imports.html}{Importing JavaScript Resources In QML}
51 \li \l{qtqml-javascript-hostenvironment.html}{JavaScript Host Environment}
54 \li \l{qtqml-typesystem-topic.html}{The QML Type System}
56 \li \l{qtqml-typesystem-valuetypes.html}{QML Value Types}
57 \li \l{qtqml-typesystem-topic.html#javascript-types}{JavaScript Types}
58 \li \l{qtqml-typesystem-objecttypes.html}{QML Object Types}
60 \li \l{qtqml-documents-definetypes.html}{Defining Object Types from QML}
61 \li \l{qtqml-cppintegration-definetypes.html}{Defining Object Types from C++}
65 \li \l{qtqml-modules-topic.html}{QML Modules}
67 \li \l{qtqml-modules-qmldir.html}{Specifying A QML Module}
68 \li \l{qtqml-modules-topic.html#supported-qml-module-types}{Supported QML Module Types}
70 \li \l{qtqml-modules-identifiedmodules.html}{Identified Modules}
71 \li \l{qtqml-modules-legacymodules.html}{Legacy Modules}
73 \li \l{qtqml-modules-cppplugins.html}{Providing Types and Functionality in a C++ Plugin}
76 \li \l{qtqml-documents-topic.html}{QML Documents}
78 \li \l{qtqml-documents-structure.html}{Structure of a QML Document}
79 \li \l{Syntax of the QML Language}
80 \li \l{qtqml-documents-definetypes.html}{Defining Object Types through QML Documents}
82 \li \l{qtqml-documents-definetypes.html#defining-an-object-type-with-a-qml-file}{Defining an Object Type with a QML File}
83 \li \l{qtqml-documents-definetypes.html#accessible-attributes-of-custom-types}{Accessible Attributes of Custom Types}
85 \li \l{qtqml-documents-networktransparency.html}{Resource Loading and Network Transparency}
86 \li \l{qtqml-documents-scope.html}{Scope and Naming Resolution}