Доброго времени суток! Необходимо реализовать в QML дерево, в которое можно было бы добавлять элементы и сворачивать его. Попробовал делать так - беру структуру типа ListView :
ListView {
id: taskList
anchors.fill: parent
model: taskModel
delegate: taskDelegate
focus: true
}
Вложенность имитируется за счет отступов текста. Сам список представляет собой QStingList, заполняется в main
QStandardItemModel* tree = new QStandardItemModel();
QList<QStandardItem*> firstLevel;
firstLevel << new QStandardItem("0");
firstLevel << new QStandardItem("1");
firstLevel << new QStandardItem("2");
QList<QStandardItem*> secondLevelA;
secondLevelA << new QStandardItem("3");
secondLevelA << new QStandardItem("4");
QList<QStandardItem*> secondLevelB;
secondLevelB << new QStandardItem("5");
secondLevelB << new QStandardItem("6");
secondLevelB << new QStandardItem("7");
QList<QStandardItem*> thirdLevel;
thirdLevel << new QStandardItem("8");
thirdLevel << new QStandardItem("9");
thirdLevel << new QStandardItem("10");
secondLevelA[1]->appendColumn(thirdLevel);
firstLevel[0]->appendColumn(secondLevelA);
firstLevel[2]->appendColumn(secondLevelB);
tree->appendColumn(firstLevel);
TaskTree *taskTree = new TaskTree(tree);
taskTree->setRootContext(viewer.rootContext());
viewer.rootContext()->setContextProperty("taskTree", taskTree);
QStringList taskIdsList = taskTree->toPlainList();
viewer.rootContext()->setContextProperty("taskModel", QVariant::fromValue(taskIdsList));
viewer.setMainQmlFile(QStringLiteral("qml/organizer/main.qml"));
viewer.showExpanded();
При попытке вызвать у модели списка insert выдается сообщение, что такой метод не существует, т.к. нет его поддержки в QML. Подскажите пожалуйста, какую модель списка использовать, чтобы можно было добавлять новые элементы в список QML и чтобы обновлялось отображение дерева.