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 にアクセスできないため、私が持っているコードは機能しません。テキスト値を設定するにはどうすればよいですか?
EDIT:完全を期すために:Javaコード(アプリのロード中)を介してListViewにアイテムを追加し、コード別名を介してイベント内のListViewの値にアクセスできます
mainLView.model.append({'name': "First Value","city":"London"});
var myValue = model.get(currentIndex).city // or name
しかし、デリゲート Text { text:""} 値に値を割り当てる方法がまだ見つかりません。
EDIT 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
}
}