QTableView表格内容修改时原数据消失
时间: 2024-04-10 19:26:45 浏览: 94
当QTableView表格内容修改时原数据消失的问题可能是由于数据更新不正确导致的。要解决这个问题,你可以使用QStandardItemModel来管理表格的数据,并确保在更新数据时使用正确的索引。
以下是一个示例代码,演示如何正确更新QTableView表格的数据:
```cpp
// 创建一个QStandardItemModel
QStandardItemModel* model = new QStandardItemModel(this);
// 设置表格视图的模型
ui->tableView->setModel(model);
// 添加表头
model->setHorizontalHeaderLabels(QStringList() << "Column 1" << "Column 2");
// 添加初始数据
model->setItem(0, 0, new QStandardItem("Data 1"));
model->setItem(0, 1, new QStandardItem("Data 2"));
// 获取当前选中的单元格索引
QModelIndex currentIndex = ui->tableView->currentIndex();
// 更新数据
model->setData(currentIndex, "New Data", Qt::DisplayRole);
```
在上述示例中,我们首先创建了一个QStandardItemModel,并将其设置为表格视图的模型。然后,我们添加了表头和初始数据。接下来,我们获取当前选中的单元格索引,并使用setData()方法将新数据"New Data"设置到该索引处。
请注意,在实际使用中,你需要根据你的需求进行修改和适配。确保在更新数据时使用正确的索引,并将新数据设置到正确的位置上,这样就可以避免原数据消失的问题。
阅读全文