QT如何删除多选行信息
时间: 2023-07-04 16:05:00 浏览: 107
在QT中删除多选行信息的步骤如下:
1. 获取当前选中的行号,可以使用QTableView的selectedIndexes()函数获取所有选中单元格的QModelIndex对象。
2. 将选中行号保存到一个QList<int>列表中。
3. 对列表中的每个行号,使用QAbstractItemModel的removeRow()函数删除对应的行。
4. 最后使用QAbstractItemModel的submitAll()函数将修改提交到数据库中。
以下是示例代码:
```cpp
// 获取选中行号
QModelIndexList selectedRows = ui->tableView->selectionModel()->selectedIndexes();
QList<int> rows;
foreach (QModelIndex index, selectedRows) {
if (!rows.contains(index.row())) {
rows.append(index.row());
}
}
// 删除选中行
QAbstractItemModel *model = ui->tableView->model();
qSort(rows);
for (int i = rows.count() - 1; i >= 0; i--) {
model->removeRow(rows.at(i));
}
// 提交修改到数据库
model->submitAll();
```
注意:以上代码仅适用于使用QSqlTableModel或QSqlRelationalTableModel作为数据源的QTableView。如果使用其他数据源,可能需要做出适当的修改。
相关推荐
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)