I'm writing an application in Qt (with C++) and I need to represent an object structure in a tree view. One of the ways to do this is to create a model for this, but I'm still quite confused after reading the Qt documentation about the subject.
The "structure" I have is pretty simple - there's a
Project object that holds
Task objects in a
std::vector container. These tasks can also hold child tasks.
I've already written methods to read & write these projects to/from XML files using Qt's XML classes.
Is there any more documentation or "recommended reading" for creating models from scratch? How do you recommend I start implementing this?
As an alternative to what was said by Virgil in a comment to the question, you could use QStandardItemModel class for your model and just build your tree using this class. Below is an example:
QStandardItemModel* model = new QStandardItemModel(); QStandardItem* item0 = new QStandardItem(QIcon("test.png"), "1 first item"); QStandardItem* item1 = new QStandardItem(QIcon("test.png"), "2 second item"); QStandardItem* item3 = new QStandardItem(QIcon("test.png"), "3 third item"); QStandardItem* item4 = new QStandardItem("4 forth item"); model->appendRow(item0); item0->appendRow(item3); item0->appendRow(item4); model->appendRow(item1); ui->treeView->setModel(model);
When the UI (view) is destroyed, delete