我正在制作一个应用程序,在其中我想从 C++ 源代码中的 QML 调用一个函数,并且该 C++ 函数返回我和对象,我可以将其与 QML 的 javascript 部分中的相同属性一起使用。我已经建立了联系和一切。我尝试发送 QVariantMap 并尝试在 javascript 中使用该对象,但我没有获取该对象的属性
最佳答案
将基于 QObject 的类型从 C++ 导出到 QML 有两种方法:
- 直接从属性 READer 或 Q_INVOKABLE 函数返回独立的 QObject。注意,作为属性返回的对象具有 C++ 所有权,Q_INVOKABLE 对象具有 JS 所有权。您可以通过 http://doc.qt.nokia.com/4.7/qdeclarativeengine.html#setObjectOwnership 更改此默认行为.
- 返回 QObject 数组。在这种情况下,您应该使用 QObjectList、QDeclarativePropertyMap(不是 QVariantMap)或 QAbstractListModel。
关于javascript - 在 QML 中获取 C++ 对象并在 javascript 中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6779984/