QT-QTreeView使用方法
QTreeView: 用于显示树状结构数据,适用于树状结构数据的操作。
一、初始化
利用QStandardlternModel来初始化数据,标准的基于项数据的数据模型类, 每个项数据可以是任何数据类型。
// 初始化model
QStandardItemModel* m_standardItemModel = new QStandardItemModel();
// 使用model设置QTreeView表头
m_standardItemModel->setHorizontalHeaderLabels(QStringList(QStringLiteral("资源")));
// TreeView控件载入model
ui.m_treeView->setModel(m_standardItemModel);
// 展开数据
ui.m_treeView->expandAll();
二、节点添加数据
利用QStandardItem创建根节点与子节点的Item,并向内填充数据。数据类型可以为QString等字符,也可以是常规的变量类型。
// 创建根节点,抽象Item,并没有实际数据
QStandardItem* itemRoot = m_standardItemModel->invisibleRootItem();
// 创建并添加Item的第一个子节点
QStandardItem* itemCam = new QStandardItem(QStringLiteral("相机"));
itemRoot->appendRow(itemCam);
// 向第一个子节点itemCam添加子节点数据
QList<QStandardItem*> camList;
camList.append(new QStandardItem("cam1"));
camList.append(new QStandardItem("cam2"));
camList.append(new QStandardItem("cam3"));
itemCam->appendRows(camList);
// 创建并添加Item的第二个子节点
QStandardItem* itemImg = new QStandardItem(QStringLiteral("图片"));
itemRoot->appendRow(itemImg);
// 向第二个子节点itemImg添加子节点数据
QList<QStandardItem*> imgList;
imgList.append(new QStandardItem("img1"));
imgList.append(new QStandardItem("img2"));
imgList.append(new QStandardItem("img3"));
itemImg->

本文详细介绍了如何在Qt环境中使用QTreeView组件来展示和操作树形结构数据。首先,通过QStandardItemModel初始化数据并设置表头,接着添加根节点和子节点,展示层次结构。然后,实现了鼠标点击节点的响应事件,以便进行特定操作。此外,还展示了如何为节点设置复选框、图标以及禁止编辑。最后,添加了右键菜单功能,提供添加和删除选项。整个过程覆盖了Qt界面设计、事件处理和数据模型操作,是Qt开发中的基础实践。

2万+

被折叠的 条评论
为什么被折叠?



