Как уже было сказано выше id не является обычным свойством и не может быть установлено или изменено во время выполнения. Вы не можете ссылаться на этот атрибут, например, следующий код не будет работать:
console.log(obj.id);
Ближайшим аналогом id
из C ++ является имя переменной:
auto id = new Object();
когда вы можете ссылаться на имя, но не можете установить или изменить его.
Что касается проблемы, вы можете ссылаться на элемент, используя objectName
, или используя некоторую указанную функцию доступа, например:
Row {
id:row
anchors.centerIn: parent
spacing: 5
Repeater {
id: container
model: 10
Text {
text:"item" + index
objectName: "item" + index
}
Component.onCompleted: {
container.itemAt(5).text = "changed1";
findChild(row, "item6").text = "changed2";
}
function findChild(obj, name) {
for(var i = 0;i < obj.children.length;i ++){
if(obj.children[i].objectName === name)
return obj.children[i];
}
return undefined;
}
}
}