diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-12-06 17:00:40 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-12-06 17:00:40 (GMT) |
commit | 4f5017995bd493c30c5e0321711f2e1759b4189c (patch) | |
tree | e156adab0021995413d0be016768d00629a808e7 /doc/src/declarative/qtbinding.qdoc | |
parent | 6af078b2a13f4855a35d48376e58154ee2d57ec1 (diff) | |
parent | ad512e135ec6407323516526f09f03070d373d2e (diff) | |
download | Qt-4f5017995bd493c30c5e0321711f2e1759b4189c.zip Qt-4f5017995bd493c30c5e0321711f2e1759b4189c.tar.gz Qt-4f5017995bd493c30c5e0321711f2e1759b4189c.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml:
Document support for QVariantList and QVariantMap type conversion
Some doc clarification for components and javascript integration
Cursor shouldn't blink while dragging cursor position
Qt.include() docs weren't being picked up by qdoc
Doc: make it clear that "z" affects sibling stacking order.
Diffstat (limited to 'doc/src/declarative/qtbinding.qdoc')
-rw-r--r-- | doc/src/declarative/qtbinding.qdoc | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc index 71f41bc..04b8ca6 100644 --- a/doc/src/declarative/qtbinding.qdoc +++ b/doc/src/declarative/qtbinding.qdoc @@ -426,6 +426,7 @@ By default, QML recognizes the following data types: \o QSize, QSizeF \o QRect, QRectF \o QVariant +\o QVariantList, QVariantMap \o QObject* \o Enumerations declared with Q_ENUMS() \endlist @@ -434,6 +435,37 @@ To allow a custom C++ type to be created or used in QML, the C++ class must be r type using qmlRegisterType(), as shown in the \l {Defining new QML elements} section above. +\section2 JavaScript arrays and objects + +There is built-in support for automatic type conversion between QVariantList and JavaScript +arrays, and QVariantMap and JavaScript objects. + +For example, the function defined in QML below left expects two arguments, an array and an object, and prints +their contents using the standard JavaScript syntax for array and object item access. The C++ code +below right calls this function, passing a QVariantList and a QVariantMap, which are automatically +converted to JavaScript array and object values, repectively: + +\table +\row +\o \snippet doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml 0 +\o \snippet doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp 0 +\endtable + +This produces output like: + +\code +Array item: 10 +Array item: #00ff00 +Array item: bottles +Object item: language = QML +Object item: released = Tue Sep 21 2010 00:00:00 GMT+1000 (EST) +\endcode + +Similarly, if a C++ type uses a QVariantList or QVariantMap type for a property or method +parameter, the value can be created as a JavaScript array or object in the QML +side, and is automatically converted to a QVariantList or QVariantMap when it is passed to C++. + + \section2 Using enumerations of a custom type To use an enumeration from a custom C++ component, the enumeration must be declared with Q_ENUMS() to @@ -455,7 +487,7 @@ See the \l {Tutorial: Writing QML extensions with C++}{Writing QML extensions wi the \l {Extending QML in C++} reference documentation for more information. -\section2 Automatic type conversion +\section2 Automatic type conversion from strings As a convenience, some basic types can be specified in QML using format strings to make it easier to pass simple values from QML to C++. |