Qt 5.5 构建自定义 QTreeView
Qt 5.5 Build a custom QTreeView
所以,我一直在尝试使用QTreeView来显示我自己构建的一些类。这个想法是,我想创建一个锦标赛管理器,并获得如下视图:
-锦标赛 1
--团队 1
--团队2
---玩家1
---玩家2
-锦标赛2
等等等等。我尝试阅读本教程,但我完全不明白。我目前有 3 个班级:锦标赛,其中包含一个 QString 和一个团队 QList;团队,包含一个 QString 和一个玩家 QList;最后是包含QString的播放器。我还读到我的类必须从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++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- C++自定义比较函数
- 如何比较自定义类的std::变体
- std::设置自定义比较器
- 如何正确实现和访问运算符的各种自定义枚举器
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 自定义先决条件对移动分配运算符有效吗
- 使用VS Code和CMake Tools运行自定义命令
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- std::ranges::elements_view,用于自定义类似元组的数据
- 跟随整数索引列表的自定义类迭代器
- 参数化自定义CMake工具链
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 使用自定义上下文菜单删除 QTreeView 项崩溃
- 使用自定义模型从Qtreeview删除行
- 带有自定义委托的动态QTREEVIEW
- QTreeView 自定义列
- Qt 5.5 构建自定义 QTreeView
- 自定义QT QTreeView与自定义小部件