c++ Qt 如何 添加 Qtreeview 节点
时间: 2024-02-13 19:01:34 浏览: 101
您可以通过QAbstractItemModel中的insertRows()和insertColumns()函数向QTreeView中添加节点。具体来说,您需要使用QModelIndex类来指定要添加新节点的父项。
以下是一个简单的示例,演示如何向QTreeView添加一个新节点:
```
//获取当前选择的项
QModelIndex currentIndex = treeView->currentIndex();
//检查是否有选择的项
if (currentIndex.isValid())
{
QAbstractItemModel* model = treeView->model();
int row = currentIndex.row();
int column = currentIndex.column();
QModelIndex parentIndex = currentIndex.parent();
int numChildren = model->rowCount(parentIndex);
//插入新行
model->insertRows(numChildren, 1, parentIndex);
//设置新行的数据
QModelIndex newIndex = model->index(numChildren, column, parentIndex);
model->setData(newIndex, "New Item");
}
```
在这个例子中,我们首先获取当前选择的项并检查其是否有效。然后,我们获取QTreeView的数据模型,并计算要添加新项的位置。我们使用insertRows()函数在指定位置插入新行,并使用setData()函数设置新行的数据。在这个例子中,“New Item”是新行的文本数据。
如果您需要添加列而不是行,则可以使用insertColumns()函数。
阅读全文