2

将任何模型(例如 main.qml 中的 ListModel)通过加载器传递到另一个 .qml 文件的最佳方法是什么?

4

2 回答 2

2

如果模型只需要设置一次,那么您可以简单地在 onLoaded 信号处理程序中执行此操作

Loader {
    id: loader

    source: "myelement.qml"

    onLoaded: item.modelProperty = yourModelId;
}

如果它需要是一个绑定,例如,如果模型存储在一个属性中,该属性将在运行时更改为不同的模型实例,那么 Binding 元素应该可以工作

Binding {
    target: loader.item
    property: "modelProperty"
    value: theModelStoreProperty
}
于 2016-10-02T15:14:12.847 回答
1

实际上只有一种方法可以使用加载器。将 qml 文件的 url 传递给 source 属性。

来自http://qt-project.org/doc/qt-5.0/qtquick/qml-qtquick2-loader.html#details

Loader {
       id: myLoader
       source: "MyItem.qml"
    }

听起来这不是您要问的。如果您可以提供有关您正在做什么的更多详细信息,我们可能会提供更多帮助。

于 2013-07-22T18:21:53.973 回答