Reorganize "concept" pages in QtQuick docs
[profile/ivi/qtdeclarative.git] / src / qml / doc / src / qtqml.qdoc
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/
5 **
6 ** This file is part of the documentation of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:FDL$
9 ** GNU Free Documentation License
10 ** Alternatively, this file may be used under the terms of the GNU Free
11 ** Documentation License version 1.3 as published by the Free Software
12 ** Foundation and appearing in the file included in the packaging of
13 ** this file.
14 **
15 ** Other Usage
16 ** Alternatively, this file may be used in accordance with the terms
17 ** and conditions contained in a signed written agreement between you
18 ** and Nokia.
19 **
20 **
21 **
22 **
23 **
24 ** $QT_END_LICENSE$
25 **
26 ****************************************************************************/
27 /*!
28 \page qtqml-main.html
29 \title Qt QML Module
30 \brief The Qt QML module defines and implements the QML language
31
32 \section1 Overview Of The Qt QML Module
33
34 The Qt QML module provides a framework for developing applications.  It defines
35 and implements the QML language, and provides API which allows clients to
36 extend the QML language with more types, and to integrate QML code with
37 JavaScript or C++.
38
39 Application developers who are interested in writing applications using QML
40 should start by reading the \l{qtquick-applicationdevelopers.html}
41 {QML Application Developer Resources}.
42
43 \section2 What Is QML
44
45 QML is a user-interface specification and programming language.  It was
46 designed specifically to enable and ease the development of modern,
47 touch-driven, fluidly animated and visually-appealling applications.
48
49 One of the core goals of QML is to allow closer interaction between designers
50 and programmers during the development of an application.
51
52 \section2 What Does The Qt QML Module Provide
53
54 The Qt QML module provides the definition and an implementation of the QML
55 language.  It uses a JavaScript engine to provide JavaScript integration, and
56 provides C++ API to provide integration with C++.  It provides a framework for
57 object instantiation and manipulation along with strong typing, which can be
58 integrated with a visual canvas and an animation framework to enable the
59 development of highly-appealling interactive applications.
60
61 \section2 What Does The Qt QML Module Not Provide
62
63 It does not provide a visual canvas, visual items, or an animation framework.
64 These are provided instead by the \l{QtQuick} module.
65
66 Qt Quick can be thought of as the "standard library" of types (including visual
67 types, animation classes, and canvas integration) for the QML language.
68
69
70 \section1 Qt QML Module Documentation
71
72 \list
73     \li \l{qtqml-cppclasses-topic.html}{C++ Classes Provided By The Qt QML Module}
74         \list
75         \li \l{qtqml-cppclasses-engine.html}{QQmlEngine}
76         \li \l{qtqml-cppclasses-context.html}{QQmlContext}
77         \li \l{qtqml-cppclasses-component.html}{QQmlComponent}
78         \endlist
79
80     \li \l{qtqml-typesystem-topic.html}{The QML Type System}
81         \list
82         \li \l{qtqml-typesystem-topic.html}{Basic Types}
83         \li \l{qtqml-typesystem-topic.html#javascript-types}{JavaScript Types}
84         \li \l{qtqml-typesystem-topic.html#qml-object-types}{QML Object Types}
85             \list
86             \li \l{qtqml-documents-definetypes.html}{Defining Object Types from QML}
87             \li \l{qtqml-cppintegration-registercpptypes.html}{Defining Object Types from C++}
88             \endlist
89         \endlist
90
91     \li \l{qtqml-modules-topic.html}{QML Modules}
92         \list
93         \li \l{qtqml-modules-topic.html#syntax-of-a-qmldir-file}{Packaging QML and JavaScript Files}
94         \li \l{qtqml-modules-cppplugins.html#creating-a-plugin}{Providing Types and Functionality in a C++ Plugin}
95         \li \l{qtqml-modules-qmldir.html}{Syntax of a qmldir File}
96         \endlist
97
98     \li \l{qtqml-documents-topic.html}{QML Documents}
99         \list
100         \li \l{qtqml-documents-structure.html}{Structure of a QML Document}
101         \li \l{qtqml-syntax-basics.html}{Syntax of the QML Language}
102         \li \l{qtqml-documents-definetypes.html}{Defining Object Types through QML Documents}
103             \list
104             \li \l{qtqml-documents-definetypes.html#defining-an-object-type-with-a-qml-file}{Defining an Object Type with a QML File}
105             \li \l{qtqml-documents-definetypes.html#accessible-attributes-of-custom-types}{Accessible Attributes of Custom Types}
106             \endlist
107             \li \l{qtqml-documents-networktransparency.html}{Resource Loading and Network Transparency}
108             \li \l{qtqml-documents-scope.html}{Scope and Naming Resolution}
109         \endlist
110
111     \li \l{qtqml-typereference-topic.html}{QML Types Provided by the Qt QML Module}
112         \list
113         \li \l{qtqml-typereference-topic.html#qtobject}{QtObject}
114         \li \l{qtqml-typereference-topic.html#component}{Component}
115         \endlist
116
117     \li \l{qtqml-javascript-topic.html}{Integrating QML and JavaScript}
118         \list
119         \li \l{qtqml-javascript-expressions.html}{Using JavaScript Expressions with QML}
120         \li \l{qtqml-javascript-imports.html}{Importing JavaScript Files in QML Documents}
121         \li \l{qtqml-javascript-hostenvironment.html}{JavaScript Host Environment}
122             \list
123             \li \l{qtqml-javascript-qmlglobalobject.html}{QML Global Object}
124             \li \l{qtqml-javascript-functionlist.html}{List of JavaScript Objects and Functions}
125             \endlist
126         \endlist
127
128     \li \l{qtqml-cppintegration-topic.html}{Integrating QML and C++}
129         \list
130         \li \l{qtqml-cppintegration-registercpptypes.html}{Defining QML Object Types from C++}
131         \li \l{qtqml-cppintegration-data.html}{Exposing C++ Data to QML}
132         \li \l{qtqml-cppintegration-functions.html}{Exposing C++ Functionality to QML}
133         \li \l{qtqml-cppintegration-reverse.html}{Interacting with Objects defined in QML from C++}
134         \endlist
135
136 \endlist
137
138
139 \section1 Syntax of the QML Language
140
141 \list
142     \li \l{qtqml-syntax-basics.html}{QML Syntax Basics}
143         \list
144         \li \l{qtqml-syntax-imports.html}{Import Statements}
145         \li \l{qtqml-syntax-basics.html#object-declarations}{Object Declarations}
146         \list
147             \li \l{qtqml-syntax-basics.html#child-objects}{Child Objects}
148         \endlist
149         \li \l{qtqml-syntax-basics.html#comments}{Comments}
150         \endlist
151
152     \li \l{qtqml-syntax-objectattributes.html}{QML Object Attributes}
153         \list
154         \li \l{qtqml-syntax-objectattributes.html#the-id-assignment}{The \e id Assignment}
155         \li \l{qtqml-syntax-objectattributes.html#property-initialization}{Property Initialization}
156         \li \l{qtqml-syntax-objectattributes.html#custom-properties}{Custom Properties}
157         \li \l{qtqml-syntax-objectattributes.html#signal-handlers}{Signal Handlers}
158         \li \l{qtqml-syntax-objectattributes.html#custom-signals}{Custom Signals}
159         \li \l{qtqml-syntax-objectattributes.html#custom-methods}{Custom Methods}
160         \li \l{qtqml-syntax-objectattributes.html#attached-properties-and-attached-signal-handlers}{Attached Properties and Attached Signal Handlers}
161         \endlist
162
163     \li \l{qtqml-syntax-propertybinding.html}{Property Binding}
164     \li \l{qtqml-syntax-signals.html}{Signal and Handler Event System}
165 \endlist
166
167 \section1 Reference Documentation
168
169 More information about the Qt QML module is contained within the class and
170 function documentation of the \l{qtqml-apireference.html}
171 {Qt QML Module API Reference}.  The QML types provided by the Qt QML module
172 are listed in the \l{qtqml-typereference-topic.html}
173 {Qt QML Module QML Type Reference} page.
174
175 Application developers who are interested in writing applications using QML
176 should start by reading the \l{qtquick-applicationdevelopers.html}
177 {QML Application Developer Resources}.  The documentation for the
178 \l{qtquick-main.html}{QtQuick} module is also an indispensible resource for
179 application developers, as it provides the standard library of QML types which
180 application developers will use in their applications.
181
182 Quick Links:
183 \list
184 \li \l{qtqml-typereference-topic.html}{Qt QML Module QML Type Reference}
185 \li \l{qtqml-module.html}{Qt QML Module C++ API Reference}
186 \li \l{qtquick-main.html}{Qt Quick Module Documentation}
187 \li \l{qtquick-applicationdevelopers.html}{QML Application Developer Resources}
188 \li \l{qtqml-releasenotes.html}{QtQml Release Notes}
189 \endlist
190
191 */
192