创建一个新的 QStandardItem 对象,用于表示要添加的节点。
设置该节点的数据和属性,例如文本、图标等。
获取目标层级的父节点(如果是根节点,则获取模型的 invisibleRootItem)。
使用父节点的 insertRow() 方法,在指定位置插入新节点。可以使用行索引来确定插入位置,或者使用 appendRow() 在末尾添加子项。
将新节点设置为父节点的子项。
下面是一个简单示例代码:
QStandardItemModel* model = new QStandardItemModel();
QTreeView* treeView = new QTreeView();
treeView->setModel(model);
// 添加根节点
QStandardItem* rootNode = model->invisibleRootItem();
QStandardItem* item1 = new QStandardItem("Item 1");
rootNode->appendRow(item1);
// 添加子项到指定层级
QModelIndex parentIndex = model->indexFromItem(item1); // 获取父节点索引
int targetLevel = 2; // 指定目标层级
for (int i = 0; i < targetLevel; ++i) {
if (parentIndex.isValid()) {
item1 = model->itemFromIndex(parentIndex); // 获取当前父节点
parentIndex = model->indexFromItem(item1); // 更新父节点索引
// 创建并设置要添加的新节点
QStandardItem* newItem = new QStandardItem("New Item");
item1->appendRow(newItem); // 将新节点添加到指定层级的父节点下
treeView->expandAll(); // 展开所有节点
通过以上代码,你可以在 QStandardItemModel 和 QTreeView 中实现在指定层级添加节点。记得根据自己的实际需求进行相应调整。
内容由零声教学AI助手提供,问题来源于学员提问
本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=5481