diff options
Diffstat (limited to 'src/qml/doc/src/cppintegration')
-rw-r--r-- | src/qml/doc/src/cppintegration/definetypes.qdoc | 2 | ||||
-rw-r--r-- | src/qml/doc/src/cppintegration/interactqmlfromcpp.qdoc | 19 | ||||
-rw-r--r-- | src/qml/doc/src/cppintegration/topic.qdoc | 6 |
3 files changed, 25 insertions, 2 deletions
diff --git a/src/qml/doc/src/cppintegration/definetypes.qdoc b/src/qml/doc/src/cppintegration/definetypes.qdoc index 027e4b9923..7f3ff416a1 100644 --- a/src/qml/doc/src/cppintegration/definetypes.qdoc +++ b/src/qml/doc/src/cppintegration/definetypes.qdoc @@ -297,6 +297,8 @@ qmlRegisterRevision<BaseType,1>("MyTypes", 1, 1); This is useful when deriving from base classes provided by other authors, e.g. when extending classes from the Qt Quick module. +\note The QML engine does not support revisions for properties or signals of +grouped and attached property objects. \section2 Registering Extension Objects diff --git a/src/qml/doc/src/cppintegration/interactqmlfromcpp.qdoc b/src/qml/doc/src/cppintegration/interactqmlfromcpp.qdoc index 7c2ff703c6..9c33979f40 100644 --- a/src/qml/doc/src/cppintegration/interactqmlfromcpp.qdoc +++ b/src/qml/doc/src/cppintegration/interactqmlfromcpp.qdoc @@ -75,11 +75,26 @@ component, which is accessible via QQuickView::rootObject(): \endtable This \c object is the instance of the \c MyItem.qml component that has been -created. You can now modify the item's properties using QObject::setProperty() -or QQmlProperty: +created. You can now modify the item's properties using +\l QObject::setProperty() or \l QQmlProperty::write(): \snippet qml/qtbinding/loading/main.cpp properties +The difference between \c QObject::setProperty() and \c QQmlProperty::write() +is that the latter will also remove the binding in addition to setting the +property value. For example, suppose the \c width assignment above had been a +binding to \c height: + +\code + width: height +\endcode + +If the \c height of the \c Item changed after the +\c {object->setProperty("width", 500)} call, the \c width would be updated +again, as the binding remains active. However, if the \c height changes after the +\c {QQmlProperty(object, "width").write(500)} call, the \c width will not be +changed, as the binding does not exist anymore. + Alternatively, you can cast the object to its actual type and call methods with compile-time safety. In this case the base object of \c MyItem.qml is an \l Item, which is defined by the QQuickItem class: diff --git a/src/qml/doc/src/cppintegration/topic.qdoc b/src/qml/doc/src/cppintegration/topic.qdoc index 6b6e308edf..fbb654378d 100644 --- a/src/qml/doc/src/cppintegration/topic.qdoc +++ b/src/qml/doc/src/cppintegration/topic.qdoc @@ -143,6 +143,12 @@ with a QML module that can then be imported and used by QML code in other applic \l{qtqml-modules-cppplugins.html}{Providing Types and Functionality in a C++ Plugin} for more information. +\section1 Choosing the Correct Integration Method Between C++ and QML + +To quickly determine which integration method is appropriate for your situation, the following +flowchart can be used: + +\image cpp-qml-integration-flowchart \section1 Exposing Attributes of C++ Classes to QML |