qtableview删除选中行
时间: 2023-09-13 14:08:03 浏览: 102
回答:对于qtableview删除选中行的问题,可以通过以下代码实现:
```
QModelIndexList selectedRows = tableView->selectionModel()->selectedRows();
for(int i=0; i<selectedRows.count(); i++){
tableView->model()->removeRow(selectedRows.at(i).row());
}
```
希望能帮到您!
相关问题
qt QTableView删除选中行
您可以使用QTableView的selectionModel()方法来获取选中行的模型,然后使用model()方法获取QAbstractItemModel模型,进而对选中行进行删除操作。以下是一个示例代码:
```cpp
// 获取选中行的模型
QModelIndexList selected_indexes = ui->tableView->selectionModel()->selectedRows();
// 获取QAbstractItemModel模型
QAbstractItemModel *model = ui->tableView->model();
// 从后往前删除选中行
for (int i = selected_indexes.count() - 1; i >= 0; i--)
{
model->removeRow(selected_indexes.at(i).row());
}
```
在上述代码中,我们首先使用selectionModel()获取选中行的模型,然后使用model()方法获取QAbstractItemModel模型。然后我们从后往前遍历选中的行,并使用removeRow()方法删除每一行。
该代码可以实现删除单行和多行的功能。
qtableview删除选中的多行
要在Qt中删除QTableView中选中的多行,可以使用以下代码:
```python
# 获取选中的行
rows = set()
for index in self.tableView.selectedIndexes():
rows.add(index.row())
# 从模型中删除行
model = self.tableView.model()
for row in reversed(sorted(rows)):
model.removeRow(row)
```
该代码首先获取所有选中的行,然后从模型中删除这些行。请注意,我们使用`reversed`和`sorted`函数来确保从底部开始删除行,这是因为从顶部开始删除会导致索引错误。
阅读全文