Манипуляции с элементами в GridView QML

Как при определённом событии добавить элемент в GridView? Как динамически как добавлять и перемещать элементы?

Простой пример: игра пятнашки, поле очищено, после нажатия кнопки "start" заполняется рандомными элементами в рандомные клетки. Ну при перемещении я думаю понятно.

1 ответов



 Qt.createComponent()
 
В качестве параметра Url QML файла, например:

Qt.createComponent("element.qml")
 
Или Qt.createQmlObject()
В качестве параметров: строка содержащая описание qml обьекта, предок создаваемого обьекта, файл в который пойдут ошибки при создании обьекта. например:

Qt.createQmlObject("import QtQuick 1.0; Rectangle {color: "red"; width: 20; height: 20}", rootItem, 'dinamicRectError')
 

Ну в описании кнопки start что то вроде:

MouseArea {
anchors.fill: parent
onClicked: { Qt.createComponent("element.qml"); } //Обязательно проверку на ошибки.
}
 
На компе сейчас Qt не установлен поэтому могу и ошибаться немного.
В каталоге Qt в папке Examples/declarative/toys должен быть пример что то вроде dynamicscene, там все это есть.