QT tableView 如何获得编辑完成信息
时间: 2024-02-02 16:03:10 浏览: 313
你可以使用 `QTableView` 的 `closeEditor` 信号来获取编辑完成的信息。该信号会在用户完成编辑并关闭编辑器后发出。你可以将该信号与一个槽函数连接,槽函数可以获取编辑器的数据并进行相应的处理。
以下是一个示例代码:
```cpp
connect(tableView, &QTableView::closeEditor, [=](QWidget* editor, QAbstractItemDelegate::EndEditHint hint) {
if (hint == QAbstractItemDelegate::NoHint) {
QModelIndex index = tableView->currentIndex();
QVariant data = index.data();
// 处理编辑完成后的数据
}
});
```
在上面的代码中,我们将 `closeEditor` 信号与一个 lambda 表达式连接。在 lambda 表达式中,我们首先判断编辑完成的提示类型是否为 `QAbstractItemDelegate::NoHint`,如果是,则说明用户完成了编辑操作。然后,我们获取当前编辑的单元格的索引,并从该索引处获取数据。最后,我们可以对数据进行处理。
注意,如果你使用了自定义的委托类来编辑单元格,你需要确保该委托类发送 `commitData` 信号来通知视图将编辑数据写入数据模型中。否则,`closeEditor` 信号将不会被触发。
阅读全文