为树视图创建 Qt 模型

2024-04-26

我正在用 Qt (使用 C++)编写一个应用程序,我需要在树视图中表示一个对象结构。实现此目的的方法之一是为此创建一个模型,但在阅读有关该主题的 Qt 文档后我仍然很困惑。

我的“结构”非常简单 - 有一个Project持有的物体Task中的对象std::vector容器。这些任务还可以保存子任务。

我已经编写了使用 Qt 的 XML 类从 XML 文件读取和写入这些项目的方法。

是否有更多用于从头开始创建模型的文档或“推荐阅读”?您建议我如何开始实施这个?


作为 Virgil 在对该问题的评论中所说的替代方案,您可以使用Q标准项目模型 https://doc.qt.io/qt-5/qstandarditemmodel.html为您的模型创建一个类,然后使用该类构建您的树。下面是一个例子:

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);

当UI(视图)被销毁时,删除model。文档:

  • https://doc.qt.io/qt-5/qstandarditemmodel.html https://doc.qt.io/qt-5/qstandarditemmodel.html
  • https://doc.qt.io/qt-5/qstandarditem.html https://doc.qt.io/qt-5/qstandarditem.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为树视图创建 Qt 模型 的相关文章

随机推荐