aboutsummaryrefslogtreecommitdiffstats
path: root/doc/src/qtquick2/qtquick-intro.qdoc
blob: 9eebb0bddc052465da403559359f25240312327b (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
/****************************************************************************
**
** 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 qtquick-intro.html
\title Introduction to Qt Quick

Qt Quick is a collection of technologies that are designed to help developers
create the kind of intuitive, modern, and 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
\l{QML Elements}{elements}, a \l{QML Syntax}{declarative} language for
describing user interfaces, and a language \l{QtQml Module}{runtime}. A
collection of C++ APIs is used to integrate these high level features with
classic Qt applications. Version 2.1 of the Qt Creator integrated development
environment (IDE) introduces tools for developing Qt Quick applications.

\image qml-clocks-example.png

\section1 The QML Language

QML is a high level language that uses a declarative syntax to define how the
user interface should appear and behave. QML is used to build interfaces using
a collection of standard elements for fundamental user interface features.
These elements expose properties that can be changed at run-time, allowing
visual elements to be animated and used in transitions between states of the
user interfaces.

\div{class="float-left"}
\inlineimage qml-dialcontrol-example.png
\enddiv
A Dial element might define a \e value property that can be used to control
the position of the needle on the dial. The element could be declared to
use a slider that adjusts the value of this property.

\snippet examples/declarative/ui-components/dialcontrol/qml/dialcontrol.qml the dial in use

Building user interfaces by importing these elements and linking their properties
together is one of the fundamental features of QML and Qt Quick.

\clearfloat
Behind the scenes, QML leverages the power and efficiency of the Qt libraries
to provide rendering facilities, perform processor-intensive operations, and
to access components written in C++.

The QML language also gives the developer more flexibility to create parts
of their user interface by allowing \l{About JavaScript}{JavaScript} to be
used to implement high level user interface logic.

\l{How to Learn QML} introduces the reader to the language and declarative
concepts.

\section1 QtQml Module

To make Qt Quick possible, Qt introduces the \l{QtQml} module. The
module creates a JavaScript runtime that QML runs under with a Qt based backend.
Because QtQml and QML are built upon Qt, they inherit many of Qt's
technology, namely the \l{Signals and Slots}{signals and slots} mechanism and
the \l{The Meta-Object System}{meta-object} system. Data created using C++ are
directly accessible from QML, and QML objects are also accessible from C++ code.

The QtQml module separates the interface logic in QML from the
application logic in C++. It also allows the range of standard QML elements
to be \l{Extending QML with C++}{extended with new ones written in C++}.

\section1 Qt Creator Tools

Qt Creator is a complete integrated development environment (IDE) for creating
applications with Qt Quick and the Qt application framework.

\image qmldesigner-visual-editor.png

The main goal for Qt Creator is meeting the development needs of Qt Quick
developers who are looking for simplicity, usability, productivity,
extendibility and openness, while aiming to lower the barrier of entry for
newcomers to Qt Quick and Qt. The key features of Qt Creator allow UI designers
and developers to accomplish the following tasks:
\list
\o Get started with Qt Quick application development quickly and easily with
examples, tutorials, and project wizards.
\o Design application user interface with the integrated editor, Qt Quick
Designer, or use graphics software to design the user interface and use scripts
to export the design to Qt Quick Designer.
\o Develop applications with the advanced code editor that provides new powerful
features for completing code snippets, refactoring code, and viewing the element
hierarchy of QML files.
\o Build and deploy Qt Quick applications that target multiple desktop and
mobile platforms, such as Microsoft Windows, Mac OS X, Linux, and Maemo.
\o Debug JavaScript functions and execute JavaScript expressions in the current
context, and inspect QML at runtime to explore the object structure, debug
animations, and inspect colors.
\o Deploy applications to mobile devices and create application installation
packages for Maemo devices that can be published in the Ovi Store
and other channels.
\o Easily access information with the integrated context-sensitive Qt Help
system.
\endlist

\image qtcreator-target-selector.png

\section1 Where to Go from Here

\l{external: Developing Qt Quick Applications with Creator}
{Developing Qt Quick Applications with Creator} provides an overview
of user interface development using the visual \e{Qt Quick Designer} tool.

\l{How to Learn QML} introduces the reader to the language and declarative
concepts.

The \l{QML Reference} page has links to various Qt Quick topics such as QML
features, addons, and tools.

The \l {Qt Quick Code Samples} page has a gallery of QML applications.

\section1 License Information
\list
\o \l{Qt Quick Licensing Information}
\endlist
*/