首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QT5.5构建自定义QTreeView

QT5.5构建自定义QTreeView
EN

Stack Overflow用户
提问于 2016-03-15 14:36:20
回答 1查看 139关注 0票数 1

因此,我一直试图使用QTreeView来显示我自己构建的一些类。我的想法是,创建一个锦标赛经理,并获得如下视图:

-Tournament 1

--第一队

-团队2

-玩家1

-2人

-Tournament 2

以此类推。我试着读了这个教程,但是我一点也不明白。我现在有三个类:锦标赛,包含一个QString和一个团队QList;团队,包含一个QString和一个球员QList;以及最后一个包含一个QString。我还读到我的类必须继承QAbstractItemModel,但我不知道如何做。

任何形式的帮助都将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-15 14:45:10

我认为QStandardItemModel符合您的需要,而且它比从QAbstractItemModel派生您自己的模型容易得多。

代码语言:javascript
复制
QStandardItem* itemTournament1 = new QStandardItem("Tournament 1");
QStandardItem* itemTeam1 = new QStandardItem("Team 1");
QStandardItem* itemTeam2 = new QStandardItem("Team 2");
QStandardItem* itemPlayer1 = new QStandardItem("Player 1");

QStandardItemModel* model = new QStandardItemModel;
model->setColumnCount(0);
model->appendRow(itemTournament1);

itemTournament1->appendRow(itemTeam1);
itemTournament1->appendRow(itemTeam2);

itemTeam1->appendRow(itemPlayer1);

// etc.

QTreeView* view = new QTreeView;
view->setModel(model);

编辑1:添加自定义数据

代码语言:javascript
复制
enum CustomRoles
{
    LocationRole = Qt::UserRole,
    AnotherDataRole = Qt::UserRole + 1
};

itemTournament1->setData("France", LocationRole);
itemTournament1->setData(12345, AnotherDataRole);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36014306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档