7924b1a65145d0ef81305d85d64bfeece18969b7
[profile/ivi/qtdeclarative.git] / doc / src / qtquick1 / qtquick-intro.qdoc
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: http://www.qt-project.org/
6 **
7 ** This file is part of the documentation of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:FDL$
10 ** GNU Free Documentation License
11 ** Alternatively, this file may be used under the terms of the GNU Free
12 ** Documentation License version 1.3 as published by the Free Software
13 ** Foundation and appearing in the file included in the packaging of
14 ** this file.
15 **
16 ** Other Usage
17 ** Alternatively, this file may be used in accordance with the terms
18 ** and conditions contained in a signed written agreement between you
19 ** and Nokia.
20 **
21 **
22 **
23 **
24 ** $QT_END_LICENSE$
25 **
26 ****************************************************************************/
27
28 /*!
29 \page qml-intro.html
30 \inqmlmodule QtQuick 1
31 \title Intro to Qt Quick
32
33 Qt Quick is a collection of technologies that are designed to help developers
34 create the kind of intuitive, modern, and fluid user interfaces that are
35 increasingly used on mobile phones, media players, set-top boxes, and other
36 portable devices. Qt Quick consists of a rich set of user interface
37 \l{QML Elements}{elements}, a \l{QML Syntax}{declarative} language for
38 describing user interfaces, and a language \l{QtDeclarative Module}{runtime}. A
39 collection of C++ APIs is used to integrate these high level features with
40 classic Qt applications. Version 2.1 of the Qt Creator integrated development
41 environment (IDE) introduces tools for developing Qt Quick applications.
42
43 \image qml-clocks-example.png
44
45 \section1 The QML Language
46
47 QML is a high level, scripted language. Its commands, more correctly
48 \e elements, leverage the power and efficiency of the Qt libraries to make easy
49 to use commands that perform intuitive functions. Drawing a rectangle,
50 displaying an image, and application events -- all are possible with declarative
51 programming.
52
53 The language also allows more flexibility of these commands by using
54 \l{About JavaScript}{JavaScript} to implement the high level user interface
55 logic.
56
57 A QML element usually has various \e properties that help define the element.
58 For example, if we created an element called Circle then the radius of the
59 circle would be a property. Building user interfaces by importing these elements
60 is one of the great feature of QML and Qt Quick.
61 \image qml-texteditor5_newfile.png
62
63 \section1 QtDeclarative Module
64
65 To make Qt Quick possible, Qt introduces the \l {QtDeclarative} module. The
66 module creates a JavaScript runtime that QML runs under with a Qt based backend.
67 Because QtDeclarative and QML are built upon Qt, they inherit many of Qt's
68 technology, namely the \l{Signals and Slots}{signals and slots} mechanism and
69 the \l{The Meta-Object System}{meta-object} system. Data created using C++ are
70 directly accessible from QML and QML objects are also accessible from C++ code.
71
72 In conjunction with the QML language, the QtDeclarative module separates the
73 interface logic in QML from the application logic in C++.
74
75 \section1 Creator Tools
76
77 Qt Creator is a complete integrated development environment (IDE) for creating
78 applications with Qt Quick and the Qt application framework.
79
80 \image qmldesigner-visual-editor.png
81
82 The main goal for Qt Creator is meeting the development needs of Qt Quick
83 developers who are looking for simplicity, usability, productivity,
84 extendibility and openness, while aiming to lower the barrier of entry for
85 newcomers to Qt Quick and Qt. The key features of Qt Creator allow UI designers
86 and developers to accomplish the following tasks:
87 \list
88 \o Get started with Qt Quick application development quickly and easily with
89 examples, tutorials, and project wizards.
90 \o Design application user interface with the integrated editor, Qt Quick
91 Designer, or use graphics software to design the user interface and use scripts
92 to export the design to Qt Quick Designer.
93 \o Develop applications with the advanced code editor that provides new powerful
94 features for completing code snippets, refactoring code, and viewing the element
95 hierarchy of QML files.
96 \o Build and deploy Qt Quick applications that target multiple desktop and
97 mobile platforms, such as Microsoft Windows, Mac OS X, Linux, and Maemo.
98 \o Debug JavaScript functions and execute JavaScript expressions in the current
99 context, and inspect QML at runtime to explore the object structure, debug
100 animations, and inspect colors.
101 \o Deploy applications to mobile devices and create application installation
102 packages for Maemo devices that can be published in the Ovi Store
103 and other channels.
104 \o Easily access information with the integrated context-sensitive Qt Help
105 system.
106 \endlist
107
108 \image qtcreator-target-selector.png
109
110 \section1 Where to Go from Here
111
112 The \l {Qt Quick} page has links to various Qt Quick topics such as QML
113 features, addons, and tools.
114
115 The \l {QML Examples and Demos} page has a gallery of QML applications.
116
117 \section1 License Information
118 \list
119 \o \l{Qt Quick Licensing Information}
120 \endlist
121 */
122
123
124