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