例如
ListView {
id: listView
anchors.fill: parent
anchors.margins: 20
model: myModel
delegate: myDelegate
highlightFollowsCurrentItem: true
focus: true
ListModel {
id: myModel
ListElement {
name: "Apple"; cost: 2.45
attributes: [
ListElement { description: "Core" },
ListElement { description: "Deciduous" }
]
isOnMouse: false
}
}
我使用myDelegate作为任何模型的默认值,但是如果单击其中一个项目,我只想为此项目使用另一个委托,仅适用于此项目。
有可能吗?
答案 0 :(得分:1)
如果您使用QML Loader
元素作为代理,那么您应该能够更改其source
或sourceComponent
,从而有效地更改单个项目的委托。
答案 1 :(得分:1)
在您的主要项目中定义:
property boolean isItem:false
在你的代表作中:
onClicked: isItem=index==myIndex
其中myIndex描述了您的特殊项目
:
delegate: isItem? otherDel : myDelegate