summaryrefslogtreecommitdiff
path: root/doc/src/declarative/declarativeui.qdoc
blob: cb326a3e71dfe8e103790b32c7f3645ed03c76cf (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
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial Usage
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in a
** written agreement between you and Nokia.
**
** 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.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
\title Qt Quick
\page qtquick.html
\ingroup qt-gui-concepts

\brief Qt Quick provides a declarative framework for building highly
dynamic, custom user interfaces.

\section1 Introduction

Qt Quick is a collection of technologies that are designed to help
developers create the kind of intuitive, modern-looking, fluid user
interfaces that are increasingly used on mobile phones, media players,
set-top boxes and other portable devices.

Qt Quick consists of a rich set of user interface elements, a declarative
language for describing user interfaces and a language runtime. A collection
of C++ APIs is used to integrate these high level features with classic
Qt applications.

\section2 QML, Elements and the QtDeclarative Module

User interfaces and their behavior are described using QML, an extension to
\l{About JavaScript}{JavaScript} that lets developers and designers
use a declarative syntax to specify each user interface in terms of
\l{QML Elements}{QML elements}. These elements are a sophisticated set of
graphical and behavioral building blocks that can be combined together in
\l{QML Documents}{QML documents} to build components ranging in complexity
from simple buttons and sliders, to complete Internet-enabled applications.

QML improves the integration between JavaScript and Qt's existing
QObject-based type system, adds support for automatic
\l{Property Binding}{property bindings} and provides
\l{Network Transparency}{network transparency} at the language level.

The QtDeclarative module implements the interface between the QML language
and the elements available to it. It also provides a C++ API that can be
used to load and interact with QML files from within Qt applications.

Qt Quick builds on \l{QML for Qt programmers}{Qt's existing strengths}.
QML can be be used to incrementally extend an existing application or
to build completely new applications.  QML is fully
\l{Extending QML in C++}{extensible from C++} through the QtDeclarative
Module.

\section1 Getting Started

\list
\o \l{Introduction to the QML language}
\o \l{QML for Qt Programmers}
\o \l{Getting Started Programming with QML}
\o \l{Beginning Qt Quick}
\endlist

\list
\o \l{QML Tutorial}{Tutorial: "Hello World"}
\o \l{QML Advanced Tutorial}{Tutorial: "Same Game"}
\o \l{QML Examples and Demos}
\endlist

\section1 QML Concepts

\list
\o \l{QML Documents}
\o \l{Property Binding}
\o \l{QML Scope}
\o \l{QML Modules}
\o \l{Anchor-based Layout in QML}
\endlist

\section1 User Interaction

\list
\o \l{Keyboard Focus in QML}
\o \l{QML States}
\o \l{QML Animation}
\endlist

\section1 Handling Data

\list
\o \l{Using QML Positioner and Repeater Items}
\o \l{QML Data Models}
\o \l{Presenting Data with QML}
\o \l{Network Transparency}
\endlist

\section1 Architecture

\list
\o \l{Qt Declarative UI Runtime}
\o \l{Integrating JavaScript}
\o \l{Extending types from QML}
\o \l{Dynamic Object Management in QML}
\endlist

\section1 Using QML with C++

\list
\o \l{Qt Declarative UI Runtime}
\o \l{Using QML in C++ Applications}
\o \l{Integrating QML with existing Qt UI code}
\o \l{Tutorial: Writing QML extensions with C++}
\o \l{Extending QML in C++}
\endlist

\section1 Reference

\list
\o \l{QML Elements}
\o \l{QML Global Object}
\o \l{QML Internationalization}
\o \l{QML Security}
\o \l{QtDeclarative Module}
\o \l{Debugging QML}
\o \l{QML Viewer}
\o \l{QML Performance}
\o \l{QML Coding Conventions}
\endlist

\section1 Online Examples

\list
\o Forum Nokia:
\l{http://wiki.forum.nokia.com/index.php/Qt_Quick_examples_for_porting}{Qt Quick
examples for porting}
\endlist
*/