gpt4 book ai didi

c++ - Qt 5.5 构建自定义 QTreeView

转载 作者:行者123 更新时间:2023-11-30 05:30:18 24 4
gpt4 key购买 nike

所以,我一直在尝试使用 QTreeView 来显示我自己构建的一些类。我的想法是,我想创建一个锦标赛经理,并获取如下 View :

-锦标赛 1

--团队 1

--团队2

---玩家1

---玩家2

-锦标赛 2

等等等等。我试着读这个tutorial但我根本不明白。我目前有 3 个类:锦标赛,其中包含一个 QString 和一个团队 QList; Team,其中包含一个QString和一个Player QList;最后是包含 QString 的 Player。我还读到我的类必须继承自 QAbstractItemModel,但我不知道该怎么做。

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

最佳答案

我认为 QStandardItemModel 符合您的需求,而且它比从 QAbstractItemModel 派生您自己的模型更容易使用。

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:添加自定义数据

enum CustomRoles
{
LocationRole = Qt::UserRole,
AnotherDataRole = Qt::UserRole + 1
};

itemTournament1->setData("France", LocationRole);
itemTournament1->setData(12345, AnotherDataRole);

关于c++ - Qt 5.5 构建自定义 QTreeView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36014306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com