如何在qml之间传递对象

时间:2016-10-26 04:46:14

标签: 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.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。

2 个答案:

答案 0 :(得分:1)

正如@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)

答案 1 :(得分:0)

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

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

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