Qt 如何在qml之间传递对象

Qt 如何在qml之间传递对象,qt,object,model,qml,listmodel,Qt,Object,Model,Qml,Listmodel,我想将一个对象从一个qml传递到另一个qml。 我有一个列表模型 ListModel { id:favouriteapp ListElement { id: 1 name:"ABSC" title:"5:03pm" description:"heloo-1" icon1:"images/climate_icon.

我想将一个对象从一个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

           }
}
现在我想通过字符串值将
liselement
的每个属性传递给另一个qml


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

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

您还可以允许其他组件访问模型,并允许其访问所需的列表元素


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

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

ListElement {
    id: obj1
    ...
}
这里是
MyFile.qml
,您可以将对
liselement
对象的引用传递给它:

Item{
    ...
    function myFunction(listElementObject){
        //whatever you need to do with your object
    }
}
在与
ListModel
相同的QML文件中

MyFile{
    id: myFileId
}

Component.onCompleted: myFileId.myFunction(obj1)

首先,
id
不应该是字符串或数字。文件。例如,只需将其设置为
id:obj1
,然后将
obj1
作为对该项的引用传递。@folibis:id是我的“ListElement”中的属性之一,我已编辑了您刚才删除的代码
id
s?你读过我的答案吗?@folibis:我如何传递对象的id而不是字符串。通过使用“FavoriteApp.get()”我如何从其他qml访问模型。我的型号Id“FavoriteApp”范围仅在第一个qml中。您的意思是选项2?向另一个组件添加属性,并将listmodel分配给该属性No。我想将一个对象从一个qml传递到另一个qml。我列出了三个选项。你问如何做选项2。我也回答了这个问题。那么,在这里重复你的问题有什么帮助呢?