diff options
Diffstat (limited to 'src/qml/doc/src/cppintegration/data.qdoc')
-rw-r--r-- | src/qml/doc/src/cppintegration/data.qdoc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/qml/doc/src/cppintegration/data.qdoc b/src/qml/doc/src/cppintegration/data.qdoc index c91ce28f42..0dec7fd66d 100644 --- a/src/qml/doc/src/cppintegration/data.qdoc +++ b/src/qml/doc/src/cppintegration/data.qdoc @@ -327,6 +327,11 @@ In both the Q_PROPERTY and return from Q_INVOKABLE cases, the elements of a std::vector are copied. This copying may be an expensive operation, so std::vector should be used judiciously. +You can also create a list-like data structure by constructing a QJSValue using +QJSEngine::newArray(). Such a JavaScript array does not need any conversion +when passing it between QML and C++. See \l{QJSValue#Working With Arrays} for +details on how to manipulate JavaScript arrays from C++. + Other sequence types are not supported transparently, and instead an instance of any other sequence type will be passed between QML and C++ as an opaque QVariantList. @@ -400,6 +405,14 @@ properties: Q_DECLARE_METATYPE(Actor) \endcode +The usual pattern is to use a gadget class as the type of a property, or to +emit a gadget as a signal argument. In such cases, the gadget instance is +passed by value between C++ and QML (because it's a value type). If QML code +changes a property of a gadget property, the entire gadget is re-created and +passed back to the C++ property setter. In Qt 5, gadget types cannot be +instantiated by direct declaration in QML. In contrast, a QObject instance can +be declared; and QObject instances are always passed by pointer from C++ to QML. + \section1 Enumeration Types To use a custom enumeration as a data type, its class must be registered and |