/**************************************************************************** ** ** 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 */