qml之间如何传递对象

How to pass objects between qml

我想将对象从一个 qml 传递到另一个 qml。 我有一个列表模型。

ListModel {
       id:favouriteapp
           ListElement {
               id: 1
               name:"ABSC"
               title:"5:03pm"
               description:"heloo-1"
               icon1:"images/climate_icon.png"
               icon2:"images/climate_icon.png"
               pinStatus : false
               isLoaded: false

           }
           ListElement {
               id: 2
               name:"GHTT"
               title:"Home at 5:23pm"
               description:"via Gaydon Road-2"
               icon1:"images/navigation_icon.png"
               icon2:"images/navigation_icon.png"
               pinStatus : false
               isLoaded: false

           }
}

现在我想通过字符串值将 ListElement 的每个 属性 传递给其他 qml。

如何将整个 ListElement 对象传递给其他 qml。

您始终可以使用 favouriteapp.get() 将任何列表元素作为 JavaScript 对象访问,并将此对象传递到您需要的地方。

您还可以允许其他组件访问模型并让它访问它需要的列表元素。

您还可以让其他组件提供数据对象或单独的属性,并将它们绑定到您有权访问模型的位置。

正如@folibis 所说,您需要为您的对象提供正确的 ID

ListElement {
    id: obj1
    ...
}

这里是 MyFile.qml,您可以将引用传递给您的 ListElement 对象:

Item{
    ...
    function myFunction(listElementObject){
        //whatever you need to do with your object
    }
}

并且在与 ListModel 相同的 QML 文件中,您将拥有

MyFile{
    id: myFileId
}

Component.onCompleted: myFileId.myFunction(obj1)