summaryrefslogtreecommitdiffstats
path: root/doc/src/declarative/basictypes.qdoc
blob: 05514434c50e373f3568d32fe294da08b458c134 (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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
/****************************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the either Technology Preview License Agreement or the
** Beta Release License Agreement.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file.  Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain
** additional rights. These rights are described in the Nokia Qt LGPL
** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
** package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.  Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** If you are unsure which license is appropriate for your use, please
** contact the sales department at qt-sales@nokia.com.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
    \page basicqmltypes.html
    \title Common QML Types

    QML uses a range of property types, which you will see
    referenced throughout the element documentation. Almost all of them are
    exactly what you would expect.

    \target basicqmlint
    \section1 int

    An integer or \c int is a whole numbers like 0, 10 or -20.  The possible \c int
    values range from around -2000000000 to around 2000000000, although most
    elements will only accept a reduced range (which they mention in their
    documentation).

    Example:
    \qml
    Item { width: 100; height: 200 }
    \endqml

    \target basicqmlbool
    \section1 bool

    A boolean or \c bool is a binary true/false value.

    Example:
    \qml
    Item { focus: true; clip: false }
    \endqml

    \target basicqmlreal
    \section1 real

    A \c real is a number - either a whole number like an \c int, or a fractional number
    like 1.2 or -29.8.

    Example:
    \qml
    Item { width: 100.45; height: 150.82 }
    \endqml

    \note In QML all reals are stored in single precision, \l {http://en.wikipedia.org/wiki/IEEE_754}{IEEE floating point} format.

    \target basicqmlstring
    \section1 string

    A string is a free form text, like "Hello world!".

    Example:
    \qml
    Text { text: "Hello world!" }
    \endqml

    \target basicqmlurl
    \section1 url

    A URL is a resource locator, like a file name. It can be either absolute, like "http://qtsoftware.com",
    or relative, like "pics/logo.png". A relative URL is resolved relative to the URL of the component where
    the URL is converted from a JavaScript string expression to a url property value.

    Example:
    \qml
    Image { source: "pics/logo.png" }
    \endqml

    \raw HTML
    \endraw

    \target basicqmlcolor
    \section1 color

    A \c color is most commonly specified as an \l {http://www.w3.org/TR/SVG/types.html#ColorKeywords}{SVG color name}.  These names include colors like
    "red", "green" and "lightsteelblue".

    If the color you want isn't part of this list, colors can also be specified
    in hexidecimal triplets or quads that take the form \c "#RRGGBB" and
    \c "#AARRGGBB" respectively.  For example, the color red corresponds to a
    triplet of \c "#FF0000" and a slightly transparent blue to a quad of
    \c "#800000FF".

    Example:
    \qml
    Rectangle { color: "steelblue" }
    Rectangle { color: "#FF0000" }
    Rectangle { color: "#800000FF" }
    \endqml

    \target basicqmlpoint
    \section1 point

    A \c point is specified in \c "x,y" format.

    Example:
    \qml
    Widget { pos: "0,20" }
    \endqml

    \target basicqmlsize
    \section1 size

    A \c size is specified in \c "widthxheight" format.

    Example:
    \qml
    Widget { size: "150x50" }
    \endqml

    \target basicqmlrectangle
    \section1 rect

    A \c rect is specified in \c "x,y,widthxheight" format.

    Example:
    \qml
    Widget { geometry: "50,50,100x100" }
    \endqml

    \target basicqmldate
    \section1 date

    A \c date is specified in \c "YYYY-MM-DD" format.

    Example:
    \qml
    DatePicker { minDate: "2000-01-01"; maxDate: "2020-12-31" }
    \endqml

    \target basicqmltime
    \section1 time

    A \c time is specified in \c "hh:mm:ss" format.

    Example:
    \qml
    TimePicker { time: "14:22:15" }
    \endqml

    \target basicqmlfont
    \section1 font

    The \c font type has the following properties of a QFont:
    \list
    \o \c string font.family
    \o \c bool font.bold
    \o \c bool font.italic
    \o \c bool font.underline
    \o \c real font.pointSize
    \o \c int font.pixelSize
    \endlist

    Example:
    \qml
    Text { font.family: "Helvetica"; font.pointSize: 13; font.bold: true }
    \endqml

    \target basicqmlaction
    \section1 action

    The action type has all the properties of QAction, in particular:
    \list
    \o \c slot action.trigger - invoke the action
    \o \c bool action.enabled - true if the action is enabled
    \o \c string action.text - the text associated with the action
    \endlist

    Actions are used like this:

    \qml
    MouseRegion { onClicked: MyItem.myaction.trigger() }
    State { name: "enabled"; when: MyItem.myaction.enabled == true }
    Text { text: MyItem.someaction.text }
    \endqml

    \target basicqmllist
    \section1 list

    While not technically a basic type, QML also supports lists of object
    types. When used from QML, the engine  automatically appends each value to the
    list.

    For example, the \l Item class has a children list property
    that can be used like this:
    \qml
    Item {
        children: [
            Item { id: child1 },
            Rectangle { id: child2 },
            Text { id: child3 }
        ]
    }
    \endqml
    \c Child1, \c Child2 and \c Child3 will all be added to the children list
    in the order in which they appear.

    \target basicqmlvector3d
    \section1 vector3d

    A \c vector3d is specified in \c "x,y,z" format:

    \qml
    Rotation { angle: 60; axis: "0,1,0" }
    \endqml

    or with the \c{Qt.vector3d()} helper function:

    \qml
    Rotation { angle: 60; axis: Qt.vector3d(0, 1, 0) }
    \endqml

    or as separate \c x, \c y, and \c z components:

    \qml
    Rotation { angle: 60; axis.x: 0; axis.y: 1; axis.z: 0 }
    \endqml
*/