C++ Qt QStandardItem 删除某一子节点
时间: 2023-09-01 10:13:44 浏览: 331
删除当前节点以及子节点
要删除QStandardItem的某一子节点,可以使用QStandardItemModel的removeRow()函数。该函数可以删除指定行的所有子节点,也可以只删除指定行中的某个子节点。以下是示例代码:
```cpp
// 创建一个QStandardItemModel
QStandardItemModel *model = new QStandardItemModel(this);
// 添加一个父节点
QStandardItem *parentItem = new QStandardItem("Parent Node");
model->appendRow(parentItem);
// 添加一个子节点
QStandardItem *childItem = new QStandardItem("Child Node");
parentItem->appendRow(childItem);
// 删除子节点
QModelIndex parentIndex = model->indexFromItem(parentItem);
QModelIndex childIndex = model->indexFromItem(childItem);
model->removeRow(childIndex.row(), parentIndex);
```
在上面的代码中,首先创建了一个QStandardItemModel,然后向其中添加了一个父节点和一个子节点。最后调用removeRow()函数删除了子节点。要删除的子节点的索引可以通过QStandardItemModel.indexFromItem()函数获取,该函数接受一个QStandardItem作为参数,返回该项在模型中对应的QModelIndex。removeRow()函数接受两个参数,第一个参数是要删除的行的索引,第二个参数是要删除的行的父项的索引。在本例中,要删除的行是子节点,其父项是父节点。
阅读全文