Qt 中的 QTreeView 是一个用于显示树形数据的强大控件,通常用于显示层次结构数据。以下是使用 QTreeView 的基本步骤:
- 创建一个 QTreeView 实例:
在你的主窗口或其他窗口部件中创建一个 QTreeView 实例:
QTreeView *treeView = new QTreeView(this);
- 创建一个数据模型:
QTreeView 需要一个数据模型来显示数据。通常,你会使用 QStandardItemModel 来创建模型并填充数据。
QStandardItemModel *model = new QStandardItemModel;
- 添加树形数据项:
使用 QStandardItemModel 的appendRow
和appendColumn
方法来添加树形数据项。例如:
QStandardItem *rootItem = model->invisibleRootItem(); // 根节点
QStandardItem *item1 = new QStandardItem("Item 1");
QStandardItem *item2 = new QStandardItem("Item 2");
QStandardItem *subItem1 = new QStandardItem("Subitem 1");
rootItem->appendRow(item1);
rootItem->appendRow(item2);
item2->appendRow(subItem1);
这将创建一个根节点,两个顶级项目(Item 1 和 Item 2),以及 Item 2 下的一个子项目(Subitem 1)。
- 将模型设置给 QTreeView:
使用setModel
方法将模型设置给 QTreeView:
treeView->setModel(model);
这会将模型和 QTreeView 绑定在一起,以显示模型中的数据。
- 自定义视图属性(可选):
你可以自定义 QTreeView 的各种属性,如列标题、排序、编辑模式等,以适应你的需求。例如:
treeView->setHeaderHidden(true); // 隐藏列标题
treeView->setSortingEnabled(true); // 启用排序
treeView->setEditTriggers(QAbstractItemView::DoubleClick
- 和TableView的区别:
QTreeView
和 QTableView
是 Qt 中用于显示数据的两个不同的视图部件,QTreeView
用于显示树形结构数据,而 QTableView
用于显示平面表格数据。具体有以下主要区别:- 数据显示方式:
- QTreeView:用于显示具有层次结构的数据,通常用于显示树形数据,其中每个项可以包含子项。
- QTableView:用于显示平面表格数据,通常用于显示二维表格,其中每个单元格可以包含文本或其他数据。
- 数据结构:
- QTreeView:适用于树形数据结构,通常具有一个根节点,根节点下可以包含多个子节点,每个子节点也可以包含子节点,以此类推。
- QTableView:适用于平面的二维表格数据,通常由行和列组成,每个单元格可以包含一个数据项。
- 显示方式:
- QTreeView:以树形结构的方式显示数据,通常使用树状箭头来表示子项的展开和折叠状态。
- QTableView:以表格的形式显示数据,通常包括行和列的分隔线。
- 用途:
- QTreeView:适用于展示层次化数据,例如文件系统、组织结构、目录树等。
- QTableView:适用于展示表格数据,例如数据库查询结果、电子表格、数据报表等。
- 编辑能力:
- QTreeView:通常用于只读或有限编辑的情况,虽然可以自定义以支持编辑,但通常不是其主要用途。
- QTableView:设计用于支持丰富的数据编辑,每个单元格可以轻松编辑和更新。
- 模型的不同:
- QTreeView 通常使用
QAbstractItemModel
的子类,如QStandardItemModel
或自定义模型来管理树形数据。 - QTableView 通常使用
QAbstractTableModel
或QAbstractListModel
的子类,如QStandardItemModel
或自定义模型来管理表格数据。
标签:TableView,QTreeView,QStandardItemModel,区别,QTableView,树形,TreeView,数据,QStandardIte From: https://blog.51cto.com/u_16246024/7463173