我想将一个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。
答案 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对象访问任何列表元素,并将此对象传递到您需要的位置。
您还可以允许其他组件访问模型,并让它访问所需的列表元素。
您还可以让其他组件提供数据对象或单独的属性,并将它们绑定在您有权访问模型的位置。