QT treeView 如何获得编辑完成信息
时间: 2023-09-07 17:11:37 浏览: 191
关于TreeView的简单使用(Qt6.4.1)测试源码
5星 · 资源好评率100%
与 `QTableView` 类似,你可以使用 `QTreeView` 的 `closeEditor` 信号来获取编辑完成的信息。该信号会在用户完成编辑并关闭编辑器后发出。你可以将该信号与一个槽函数连接,槽函数可以获取编辑器的数据并进行相应的处理。
以下是一个示例代码:
```cpp
connect(treeView, &QTreeView::closeEditor, [=](QWidget* editor, QAbstractItemDelegate::EndEditHint hint) {
if (hint == QAbstractItemDelegate::NoHint) {
QModelIndex index = treeView->currentIndex();
QVariant data = index.data();
// 处理编辑完成后的数据
}
});
```
在上面的代码中,我们将 `closeEditor` 信号与一个 lambda 表达式连接。在 lambda 表达式中,我们首先判断编辑完成的提示类型是否为 `QAbstractItemDelegate::NoHint`,如果是,则说明用户完成了编辑操作。然后,我们获取当前编辑的节点的索引,并从该索引处获取数据。最后,我们可以对数据进行处理。
与 `QTableView` 类似,如果你使用了自定义的委托类来编辑节点,你需要确保该委托类发送 `commitData` 信号来通知视图将编辑数据写入数据模型中。否则,`closeEditor` 信号将不会被触发。
阅读全文