Qt 中,要删除 QTreeView 中的节点,可以通过操作其模型(QAbstractItemModel)来实现。以下是一个简单的示例,展示如何从 QTreeView 中删除节点。
假设你有一个 QTreeView,它使用了 QStandardItemModel 作为模型。你可以使用 removeRow()
方法来删除行(节点)。
- // 获取当前选择的模型索引
- QModelIndexList selectedIndexes = treeView->selectionModel()->selectedIndexes();
-
- // 如果有选择的索引
- if (!selectedIndexes.isEmpty()) {
- QModelIndex selectedIndex = selectedIndexes.first();
- QStandardItemModel *model = qobject_cast<QStandardItemModel*>(treeView->model());
-
- if (model) {
- // 删除选定的行(节点)
- model->removeRow(selectedIndex.row(), selectedIndex.parent());
- }
- }