从C++访问QML对象

3
以下是一个用于将QML文档加载到C++中的代码。
  QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this);

    // Create root object for the UI
    AbstractPane *root = qml->createRootObject<AbstractPane>();


    app->setScene(root);
}

我如何从C++中访问QML文档中的对象,例如按钮等?我需要访问它们以查找特定对象在QML文档中的内存地址。

1个回答

3
ImageView* iv= root->findChild<bb::cascades::ImageView*>("myImageView");

并且在QML中

 ImageView 
 {
      // ...
      objectName: "myImageView"
 }

注意:不要忘记清理和重新构建项目。


但是当我执行std::cout << &(*iv) << std::endl;时,它总是返回0。 - DesirePRG
这意味着您的QML中没有该名称的对象。请检查是否加载了适当的QML文件以及其是否成功加载,并再次检查objectName。此外,尝试清理项目。findChild遍历组件树并搜索具有等于传递参数的objectName的组件。 - Mercurial
是的,你说得对。我必须清理并构建文件,现在它可以工作了。非常感谢你的指导。 - DesirePRG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接