如何从 ListView 的事件处理程序访问 ListView 委托中的 Text.text 项,示例代码(可能有语法错误)如下。
ListView {
id: mainLView
model: ListViewModel {}
delegate: Rectangle {
id: theRect
Text {
id: theText
text: ""
}
}
onMovementEnded {
//here is where I would like to access the text in Text, e.g
theText.text = "New Value"
}
}
我的代码不起作用,因为无法从事件处理程序访问 theText。如何完成设置文本值?
编辑:为了完整起见:我可以通过java代码(在应用程序加载期间)将项目添加到ListView,通过代码访问事件内部ListView中的值aka
mainLView.model.append({'name': "First Value","city":"London"});
var myValue = model.get(currentIndex).city // or name
但我仍然找不到为委托 Text { text:""} 值分配值的方法。
编辑 2 7 月 10 日这是我想要实现的更完整的代码示例。
ListView {
id: mainLView
model: ListModel { id: mainModel}
delegate: Rectangle {
id: theRect
Text {
id: theText
text: nameX
}
}
Component.onCompleted: {
for (var x=1; x < 99; x++) {
var data = {'nameX': "Name: " + x, "numberX":x};
mainModel.append(data);
}
}
onMovementEnded {
//here I want to set the value to numberX e.g (this does not work)
theText.text = mainView.model.get(currentIndex).numberX
}
}