aboutsummaryrefslogtreecommitdiffstats
path: root/doc/src/qtquick1/qdeclarativeintro.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/qtquick1/qdeclarativeintro.qdoc')
-rw-r--r--doc/src/qtquick1/qdeclarativeintro.qdoc405
1 files changed, 0 insertions, 405 deletions
diff --git a/doc/src/qtquick1/qdeclarativeintro.qdoc b/doc/src/qtquick1/qdeclarativeintro.qdoc
deleted file mode 100644
index b7a1d1d133..0000000000
--- a/doc/src/qtquick1/qdeclarativeintro.qdoc
+++ /dev/null
@@ -1,405 +0,0 @@
-/****************************************************************************
-**
-** 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 qdeclarativeintroduction.html
-\inqmlmodule QtQuick 1
-\title Introduction to the QML Language
-
-\tableofcontents
-
-QML is a declarative language designed to describe the user interface of a
-program: both what it looks like, and how it behaves. In QML, a user
-interface is specified as a tree of objects with properties.
-
-This introduction is meant for those with little or no programming
-experience. JavaScript is used as a scripting language in QML, so you may want
-to learn a bit more about it (see the \l{Javascript Guide}) before diving
-deeper into QML. It's also helpful to have a basic understanding of other web
-technologies like HTML and CSS, but it's not required.
-
-\section1 Basic QML Syntax
-
-QML looks like this:
-
-\qml
-import QtQuick 1.0
-
-Rectangle {
- width: 200
- height: 200
- color: "blue"
-
- Image {
- source: "pics/logo.png"
- anchors.centerIn: parent
- }
-}
-\endqml
-
-Here we create two objects, a \l Rectangle object and its child
-\l Image object. Objects are specified by their type, followed by a pair of
-braces in between which additional data can be defined for the object, such as
-its property values and any child objects.
-
-Properties are specified with a \c {property: value} syntax. In the above example, we
-can see the \l Image object has a property named \c source, which has been assigned the
-value \c "pics/logo.png". The property and its value are separated by a colon.
-
-Properties can be specified one-per-line:
-
-\qml
-Rectangle {
- width: 100
- height: 100
-}
-\endqml
-
-or you can put multiple properties on a single line:
-
-\qml
-Rectangle { width: 100; height: 100 }
-\endqml
-
-When multiple property/value pairs are specified on a single line, they
-must be separated by a semicolon.
-
-The \c import statement imports the \c QtQuick \l{QML Modules}{module}, which contains all of the
-standard \l {QML Elements}. Without this import statement, the \l Rectangle
-and \l Image elements would not be available.
-
-
-\section1 Comments
-
-Commenting in QML is similar to JavaScript.
-\list
-\o Single line comments start with // and finish at the end of the line.
-\o Multiline comments start with /* and finish with *\/
-\endlist
-
-\snippet doc/src/snippets/declarative/comments.qml 0
-
-Comments are ignored by the engine. They are useful for explaining what you
-are doing; for referring back to at a later date, or for others reading
-your QML files.
-
-Comments can also be used to prevent the execution of code, which is
-sometimes useful for tracking down problems.
-
-\qml
-Text {
- text: "Hello world!"
- //opacity: 0.5
-}
-\endqml
-
-In the above example, the \l Text object will have normal opacity, since the
-line opacity: 0.5 has been turned into a comment.
-
-
-
-\section1 Object Identifiers
-
-Each object can be given a special \e id value that allows the object to be identified
-and referred to by other objects.
-
-For example, below we have two \l Text objects. The first \l Text object
-has an \c id value of "text1". The second \l Text object can now set its own
-\c text property value to be the same as that of the first object, by referring to
-\c text1.text:
-
-\qml
-import QtQuick 1.0
-
-Row {
- Text {
- id: text1
- text: "Hello World"
- }
-
- Text { text: text1.text }
-}
-\endqml
-
-An object can be referred to by its \c id from anywhere within the \l {QML Documents}{component}
-in which it is declared. Therefore, an \c id value must always be unique within a single component.
-
-The \c id value is a special value for a QML object and should not be thought of as an
-ordinary object property; for example, it is not possible to access \c text1.id in the
-above example. Once an object is created, its \c id cannot be changed.
-
-Note that an \c id must begin with a lower-case letter or an underscore, and cannot contain
-characters other than letters, numbers and underscores.
-
-
-
-\section1 Expressions
-
-JavaScript expressions can be used to assign property values. For example:
-
-\qml
-Item {
- width: 100 * 3
- height: 50 + 22
-}
-\endqml
-
-These expressions can include references to other objects and properties, in which case
-a \l{Property Binding}{binding} is established: when the value of the expression changes,
-the property to which the expression is assigned is automatically updated to the
-new value. For example:
-
-\qml
-Item {
- width: 300
- height: 300
-
- Rectangle {
- width: parent.width - 50
- height: 100
- color: "yellow"
- }
-}
-\endqml
-
-Here, the \l Rectangle object's \c width property is set relative to the width
-of its parent. Whenever the parent's width changes, the width of the \l Rectangle is
-automatically updated.
-
-
-
-\section1 Properties
-\target intro-properties
-
-\section2 Basic Property Types
-
-QML supports properties of many types (see \l{QML Basic Types}). The basic types include \c int,
-\c real, \c bool, \c string and \c color.
-
-\qml
-Item {
- x: 10.5 // a 'real' property
- state: "details" // a 'string' property
- focus: true // a 'bool' property
- // ...
-}
-\endqml
-
-QML properties are what is known as \e type-safe. That is, they only allow you to assign a value that
-matches the property type. For example, the \c x property of item is a real, and if you try to assign
-a string to it you will get an error.
-
-\badcode
-Item {
- x: "hello" // illegal!
-}
-\endcode
-
-Note that with the exception of \l {Attached Properties}, properties always begin with a lowercase
-letter.
-
-
-\section2 Property Change Notifications
-
-When a property changes value, it can send a signal to notify others of this change.
-
-To receive these signals, simply create a \e {signal handler} named with an \c on<Property>Changed
-syntax. For example, the \l Rectangle element has \l {Item::}{width} and \l {Rectangle::}{color}
-properties. Below, we have a \l Rectangle object that has defined two signal handlers,
-\c onWidthChanged and \c onColorChanged, which will automaticallly be called whenever these
-properties are modified:
-
-\qml
-Rectangle {
- width: 100; height: 100
-
- onWidthChanged: console.log("Width has changed to: " + width)
- onColorChanged: console.log("Color has changed to: " + color)
-}
-\endqml
-
-Signal handlers are explained further \l {Signal Handlers}{below}.
-
-
-\section2 List properties
-
-List properties look like this:
-
-\qml
-Item {
- children: [
- Image {},
- Text {}
- ]
-}
-\endqml
-
-The list is enclosed in square brackets, with a comma separating the
-list elements. In cases where you are only assigning a single item to a
-list, you can omit the square brackets:
-
-\qml
-Image {
- children: Rectangle {}
-}
-\endqml
-
-Items in the list can be accessed by index. See the \l{list}{list type} documentation
-for more details about list properties and their available operations.
-
-
-\section2 Default Properties
-
-Each object type can specify one of its list or object properties as its default property.
-If a property has been declared as the default property, the property tag can be omitted.
-
-For example this code:
-\qml
-State {
- changes: [
- PropertyChanges {},
- PropertyChanges {}
- ]
-}
-\endqml
-
-can be simplified to:
-
-\qml
-State {
- PropertyChanges {}
- PropertyChanges {}
-}
-\endqml
-
-because \c changes is the default property of the \c State type.
-
-\section2 Grouped Properties
-\target dot properties
-
-In some cases properties form a logical group and use a 'dot' or grouped notation
-to show this.
-
-Grouped properties can be written like this:
-\qml
-Text {
- font.pixelSize: 12
- font.bold: true
-}
-\endqml
-
-or like this:
-\qml
-Text {
- font { pixelSize: 12; bold: true }
-}
-\endqml
-
-In the element documentation grouped properties are shown using the 'dot' notation.
-
-While you can bind the entire group at once, like below, note that setting any of the
-grouped properties will result in setting the group and thus invalidate the binding.
-\qml
-Text {
- font: otherText.font
-}
-\endqml
-
-\section2 Attached Properties
-\target attached-properties
-
-Some objects attach properties to another object. Attached Properties
-are of the form \e {Type.property} where \e Type is the type of the
-element that attaches \e property.
-
-For example, the \l ListView element attaches the \e ListView.isCurrentItem property
-to each delegate it creates:
-
-\qml
-Component {
- id: myDelegate
- Text {
- text: "Hello"
- color: ListView.isCurrentItem ? "red" : "blue"
- }
-}
-\endqml
-
-\qml
-ListView {
- delegate: myDelegate
-}
-\endqml
-
-Another example of attached properties is the \l Keys element which
-attaches properties for handling key presses to
-any visual Item, for example:
-
-\qml
-Item {
- focus: true
- Keys.onSelectPressed: console.log("Selected")
-}
-\endqml
-
-\section1 Signal Handlers
-
-Signal handlers allow JavaScript code to be executed in response to an event. For
-example, the \l MouseArea element has an \l {MouseArea::}{onClicked} handler that can
-be used to respond to a mouse click. Below, we use this handler to print a
-message whenever the mouse is clicked:
-
-\qml
-Item {
- width: 100; height: 100
-
- MouseArea {
- anchors.fill: parent
- onClicked: {
- console.log("mouse button clicked")
- }
- }
-}
-\endqml
-
-All signal handlers begin with \e "on".
-
-Some signal handlers include an optional parameter. For example
-the MouseArea \l{MouseArea::}{onPressed} signal handler has a \c mouse parameter
-that contains information about the mouse press. This parameter can be referred to in
-the JavaScript code, as below:
-
-\qml
-MouseArea {
- acceptedButtons: Qt.LeftButton | Qt.RightButton
- onPressed: {
- if (mouse.button == Qt.RightButton)
- console.log("Right mouse button pressed")
- }
-}
-\endqml
-*/