У вас есть ряд проблем в вашей попытке выше ... Во-первых, вам нужно будет выполнить итерацию в обратном направлении, потому что вы будете перемещать содержимое потомков вниз по мере продвижения (т. Е. Если вы удалите номер 1, число№ 2 станет дочерним № 1, а затем вы удалите № 2, который будет старым дочерним № 3).
Во-вторых, вам нужно получить доступ к дочерним элементам по-другому.Функция childAt () предназначена для определения местоположения ребенка в определенном месте x, y на экране, а не в списке в списке.
Попробуйте вместо этого:
import QtQuick 1.0
Rectangle {
width: 400
height: 400
Grid {
id: contentGrid
spacing: 10
Text { text: "foo" } // destroy this
Text { text: "bar" } // destroy this as well
}
MouseArea {
anchors.fill: parent
onClicked: {
for(var i = contentGrid.children.length; i > 0 ; i--) {
console.log("destroying: " + i)
contentGrid.children[i-1].destroy()
}
}
}
}