C++qttableview删除选中的一行并刷新
时间: 2024-02-17 22:05:20 浏览: 305
第四删除操作。-QT实验教程
可以按照以下步骤进行:
1. 先获取当前选中的行数,可以使用QTableView的selectedIndexes()函数来获取。
```
QModelIndexList selectedRows = ui->tableView->selectionModel()->selectedIndexes();
```
2. 将选中的行数按照从大到小的顺序排序,防止删除时下标混乱。
```
qSort(selectedRows.begin(), selectedRows.end(), qGreater<QModelIndex>());
```
3. 循环删除选中的行。
```
foreach(QModelIndex index, selectedRows)
{
ui->tableView->model()->removeRow(index.row());
}
```
4. 最后刷新一下表格。
```
ui->tableView->model()->submitAll();
```
完整的代码示例:
```
QModelIndexList selectedRows = ui->tableView->selectionModel()->selectedIndexes();
qSort(selectedRows.begin(), selectedRows.end(), qGreater<QModelIndex>());
foreach(QModelIndex index, selectedRows)
{
ui->tableView->model()->removeRow(index.row());
}
ui->tableView->model()->submitAll();
```
阅读全文