在 QML 中的委托中访问 modelData
Posted
技术标签:
【中文标题】在 QML 中的委托中访问 modelData【英文标题】:Access modelData within delegate in QML 【发布时间】:2016-09-26 14:59:44 【问题描述】:有没有办法从 View 委托(特别是Repeater)访问modelData
。
我尝试使用单独的属性并尝试通过model.modelData
访问它,但这都不起作用。
请看下面的代码快照。
提前致谢。
Component
id: comp_1
Rectangle
color: "green"
width: 200
height: 200
Component
id: comp_2
Rectangle
color: "red"
width: 200
height: 200
Text
anchors.fill: parent
text: modelData
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
function getDelegate(itemName)
if(itemName === "comp1")
return comp_1;
else
return comp_2;
Row
Repeater
id: repeat
model: ["comp1", "comp2"]
Loader
sourceComponent: getDelegate(modelData)
【问题讨论】:
你看到this页面了吗? 【参考方案1】:您可以在委托元素上添加一个属性
Component
id: comp_1
Rectangle
property string valueFromModel
并将modelData绑定到它
Loader
id: loader
Binding
target: loader.item
property: "valueFromModel"
value: model.modelData
【讨论】:
以上是关于在 QML 中的委托中访问 modelData的主要内容,如果未能解决你的问题,请参考以下文章