/****************************************************************************
**
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia.  For licensing terms and
** conditions see http://qt.digia.com/licensing.  For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Free Documentation License Usage
** 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.  Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page qtquick-quickstart-basics.html
\title Quick Start Guide - QML Basics
\brief Basic QML application development examples

\section1 Creating a QML Document

A QML document defines a hierarchy of objects with a highly-readable,
structured layout.  Every QML document consists of two parts: an imports
section and an object declaration section.  The types and functionality most
common to user interfaces are provided in the \l{QtQuick}
import.

\section2 Importing and Using the QtQuick Module

To use the \l{QtQuick} module, a QML document needs to
import it.  The import syntax looks like this:

\qml
import QtQuick 2.0
\endqml

The types and functionality that \l{QtQuick} provides can now
be used in the QML document!

\section2 Defining an Object Hierarchy

The object declaration in a QML document defines what will be displayed in the
visual scene.  \l{QtQuick} provides the basic building blocks
for all user interfaces, including objects to display images and text, and to
handle user input.

A simple object declaration might be a colored rectangle with some text centered
in it:

\qml
Rectangle {
    width: 200
    height: 100
    color: "red"

    Text {
        anchors.centerIn: parent
        text: "Hello, World!"
    }
}
\endqml

This defines an object hierarchy with a root \l Rectangle object
which has a child \l Text object.  The \c parent of the \l Text object is
automatically set to the \l Rectangle, and similarly, the \l Text object is
added to the \c children property of the \l Rectangle object, by QML.

\section2 Putting it Together

The \l Rectangle and \l Text types used in the above example are both provided
by the \l{QtQuick} import.  To use them, we need to import
\l{QtQuick}.  Putting the import and object declaration
together, we get a complete QML document:

\qml
import QtQuick 2.0

Rectangle {
    width: 200
    height: 100
    color: "red"

    Text {
        anchors.centerIn: parent
        text: "Hello, World!"
    }
}
\endqml

If we save that document as "HelloWorld.qml" we can load and display it.

\section1 Loading and Displaying the QML Document

To display the graphical scene defined by the QML document, it may be loaded
with the \l{Prototyping with qmlscene}{qmlscene} tool.  The
\l{Prototyping with qmlscene}{qmlscene} tool should be installed into the
Qt installation directory.  Assuming that the Qt binaries are installed into
or are available in the system executable path, you can display the QML
document with the following command:

\code
qmlscene HelloWorld.qml
\endcode

You should see the text "Hello, World!" in the center of a red rectangle.

*/
