Creating Qt models for tree views


Question

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?

1
10
12/31/2009 4:01:34 PM

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 model. Documentation:

12
12/5/2018 6:09:31 PM

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon