aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/doc/src/qtqml.qdoc
blob: 715b866b476c7e5fa1cef76871bfe560ca89b058 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** GNU Free Documentation License
** 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.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms
** and conditions contained in a signed written agreement between you
** and Nokia.
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page qtqml-main.html
\title Qt QML Module
\brief The Qt QML module defines and implements the QML language

\section1 Overview of the Qt QML Module

The Qt QML module provides a framework for developing applications.  It defines
and implements the QML language, and provides API which allows clients to
extend the QML language with more types, and to integrate QML code with
JavaScript or C++.

Application developers who are interested in writing applications using QML
should start by reading the \l{qtquick-applicationdevelopers.html}
{QML Application Developer Resources}.

\section2 What is QML?

QML is a user-interface specification and programming language.  It was
designed specifically to enable and ease the development of modern,
touch-driven, fluidly animated and visually-appealling applications.

One of the core goals of QML is to allow closer interaction between designers
and programmers during the development of an application.

\section2 What Does the Qt QML Module Provide?

The Qt QML module provides the definition and an implementation of the QML
language.  It uses a JavaScript engine to provide JavaScript integration, and
provides C++ API to provide integration with C++.  It provides a framework for
object instantiation and manipulation along with strong typing, which can be
integrated with a visual canvas and an animation framework to enable the
development of highly-appealling interactive applications.

\section2 What Does the Qt QML Module Not Provide?

It does not provide a visual canvas, visual items, or an animation framework.
These are provided instead by the \l{QtQuick} module.

Qt Quick can be thought of as the "standard library" of types (including visual
types, animation classes, and canvas integration) for the QML language.


\section1 Qt QML Module Documentation

\list
    \li \l{qtqml-cppclasses-topic.html}{Important C++ Classes}
        \list
        \li \l{QQmlEngine}
        \li \l{QQmlContext}
        \li \l{QQmlComponent}
        \li \l{QQmlExpression}
        \endlist

    \li \l{qtqml-typesystem-topic.html}{The QML Type System}
        \list
        \li \l{qtqml-typesystem-basictypes.html}{Basic Types}
        \li \l{qtqml-typesystem-topic.html#javascript-types}{JavaScript Types}
        \li \l{qtqml-typesystem-objecttypes.html}{QML Object Types}
            \list
            \li \l{qtqml-documents-definetypes.html}{Defining Object Types from QML}
            \li \l{qtqml-cppintegration-definetypes.html}{Defining Object Types from C++}
            \endlist
        \li \l{qtqml-typesystem-topic.html#property-modifier-types}{Property Modifier Types}
        \endlist

    \li \l{qtqml-modules-topic.html}{QML Modules}
        \list
        \li \l{qtqml-modules-locatedmodules.html}{Located Modules}
        \li \l{qtqml-modules-installedmodules.html}{Installed Modules}
        \li \l{qtqml-modules-qmldir.html}{Adding Module Metadata with a qmldir file}
        \li \l{qtqml-modules-cppplugins.html}{Providing Types and Functionality in a C++ Plugin}
        \endlist

    \li \l{qtqml-documents-topic.html}{QML Documents}
        \list
        \li \l{qtqml-documents-structure.html}{Structure of a QML Document}
        \li \l{qtqml-main.html#syntax-of-the-qml-language}{Syntax of the QML Language}
        \li \l{qtqml-documents-definetypes.html}{Defining Object Types through QML Documents}
            \list
            \li \l{qtqml-documents-definetypes.html#defining-an-object-type-with-a-qml-file}{Defining an Object Type with a QML File}
            \li \l{qtqml-documents-definetypes.html#accessible-attributes-of-custom-types}{Accessible Attributes of Custom Types}
            \endlist
        \li \l{qtqml-documents-networktransparency.html}{Resource Loading and Network Transparency}
        \li \l{qtqml-documents-scope.html}{Scope and Naming Resolution}
        \endlist

    \li \l{qtqml-typereference-topic.html}{QML Types Provided by the QtQml Module}
        \list
        \li \l{qtqml-typereference-topic.html#importing-qtqml}{Importing QtQml}
        \li \l{qtqml-typereference-topic.html#basic-types}{Basic Types}
        \li \l{qtqml-typereference-topic.html#object-types}{Object Types}
            \list
            \li \l{qtqml-typereference-topic.html#qtobject}{QtObject}
            \li \l{qtqml-typereference-topic.html#component}{Component}
            \endlist
        \endlist

    \li \l{qtqml-javascript-topic.html}{Integrating QML and JavaScript}
        \list
        \li \l{qtqml-javascript-expressions.html}{Using JavaScript Expressions with QML}
        \li \l{qtqml-javascript-imports.html}{Importing JavaScript Files in QML Documents}
        \li \l{qtqml-javascript-hostenvironment.html}{JavaScript Host Environment}
            \list
            \li \l{qtqml-javascript-qmlglobalobject.html}{QML Global Object}
            \li \l{qtqml-javascript-functionlist.html}{List of JavaScript Objects and Functions}
            \endlist
        \endlist

    \li \l{qtqml-cppintegration-topic.html}{Integrating QML and C++}
        \list
        \li \l{qtqml-cppintegration-exposecppattributes.html}{Exposing Attributes of C++ Classes to QML}
        \li \l{qtqml-cppintegration-definetypes.html}{Defining QML Types from C++}
        \li \l{qtqml-cppintegration-contextproperties.html}{Embedding C++ Objects into QML with Context Properties}
        \li \l{qtqml-cppintegration-interactqmlfromcpp.html}{Interacting with QML Objects from C++}
        \li \l{qtqml-cppintegration-data.html}{Data Type Conversion Between QML and C++}
        \endlist

\endlist


\section1 Syntax of the QML Language

\list
    \li \l{qtqml-syntax-basics.html}{QML Syntax Basics}
        \list
        \li \l{qtqml-syntax-imports.html}{Import Statements}
        \li \l{qtqml-syntax-basics.html#object-declarations}{Object Declarations}
        \list
            \li \l{qtqml-syntax-basics.html#child-objects}{Child Objects}
        \endlist
        \li \l{qtqml-syntax-basics.html#comments}{Comments}
        \endlist

    \li \l{qtqml-syntax-objectattributes.html}{QML Object Attributes}
        \list
        \li \l{qtqml-syntax-objectattributes.html#the-id-attribute}{The \e id Attribute}
        \li \l{qtqml-syntax-objectattributes.html#property-attributes}{Property Attributes}
        \li \l{qtqml-syntax-objectattributes.html#signal-attributes}{Signal Attributes}
        \li \l{qtqml-syntax-objectattributes.html#method-attributes}{Method Attributes}
        \li \l{qtqml-syntax-objectattributes.html#attached-properties-and-attached-signal-handlers}{Attached Properties and Attached Signal Handlers}
        \endlist

    \li \l{qtqml-syntax-propertybinding.html}{Property Binding}
    \li \l{qtqml-syntax-signals.html}{Signal and Handler Event System}
\endlist

\section1 Reference Documentation

More information about the Qt QML module is contained within the class and
function documentation of the \l{QtQml}
{Qt QML Singleton Type Reference}.  The QML types provided by the Qt QML module
are listed in the \l{qtqml-typereference-topic.html}
{Qt QML Module QML Type Reference} page.

Application developers who are interested in writing applications using QML
should start by reading the \l{qtquick-applicationdevelopers.html}
{QML Application Developer Resources}.  The documentation for the
\l{qtquick-main.html}{QtQuick} module is also an indispensible resource for
application developers, as it provides the standard library of QML types which
application developers will use in their applications.

Quick Links:
\list
\li \l{qtqml-typereference-topic.html}{Qt QML Module QML Type Reference}
\li \l{QtQml}{Qt QML Module C++ API Reference}
\li \l{qtquick-main.html}{Qt Quick Module Documentation}
\li \l{qtquick-applicationdevelopers.html}{QML Application Developer Resources}
\li \l{qtqml-releasenotes.html}{QtQml Release Notes}
\endlist

*/