Access item inside ListView via delegate
-
@Ratzz said in Access item inside ListView via delegate:
I was able to access the TextEdit value using property value which is set to model via ListElement something like this
@J-Hilk , Is there any better way than this ?
-
@Ratzz
for example, you could just bind the text directly:Column { width: 50 TextEdit { text: editableText} } ... ... ListModel { id: listModel ListElement { editableText: "SomeText" } }
-
That works as well
-
@J-Hilk
Now when I tried with empty textListModel { id: listModel ListElement { editableText: "" } }
and then I tried to change the text field value manually say "sometext" . Button event returned null
onClicked: { listModel.get(0).editableText console.log(listModel.get(0).editableText ) //Null }
while button event setting property gave proper result
onClicked: { listModel.setProperty(index, "editableText ", id.text) console.log(listModel.get(0).editableText ) //"sometext" }
-
@Ratzz interesting
I usually have c++ based models, so my experience with QML models is limited 😕
Maybe someone else know more about this behavior
-
@Ratzz said in Access item inside ListView via delegate:
listModel.get(0).editableText
What is that line supposed to do? You are not modifying anything here
onClicked: { listModel.setProperty(index, "editableText ", textEdit.text) }
just do that instead:
onClicked: editableText = textEdit.text
-
@Ratzz
console.log(editableText )
, you have access to the role values (as context properties) corresponding to the model cell in the delegate
14/14