qttableview获取当前选中行
时间: 2023-08-30 12:05:21 浏览: 765
要获取当前选中行的索引,可以使用QTableView的selectionModel()方法来获取选择模型,然后使用selectedIndexes()方法获取所选单元格的索引列表,最后使用row()方法获取第一个所选索引的行数。例如:
```
QModelIndexList indexes = ui->tableView->selectionModel()->selectedIndexes();
int rowIndex = indexes.at(0).row();
```
这将获取所选单元格的第一个索引的行号。如果你只想获取所选行的行号,而不是所选单元格的索引,请使用selectedRows()方法来获取所选行的索引列表,然后使用first()方法获取第一个所选行的索引。例如:
```
QModelIndexList indexes = ui->tableView->selectionModel()->selectedRows();
int rowIndex = indexes.first().row();
```
请注意,如果没有选中任何行,则selectedIndexes()和selectedRows()方法都将返回一个空列表,因此在使用它们之前应该先进行检查。
相关问题
在QT中获取tableview当前选中行
在QT中获取TableView当前选中行,可以通过以下代码实现:
```cpp
QModelIndexList selectedRows = tableView->selectionModel()->selectedRows();
if(!selectedRows.empty()){
int currentRow = selectedRows.at(0).row();
}
```
首先,我们使用`selectionModel()`方法获取TableView的选择模型。然后,我们使用`selectedRows()`方法获取选中的行的模型索引列表。最后,我们可以通过`row()`方法获取选中行的行号。
请注意,`selectedRows()`方法返回的是一个列表,因此我们可以使用`empty()`方法检查列表是否为空,以免出现空指针异常。
QT的tableview获取当前行
您可以使用QTableView的selectionModel()方法获取选中模型,然后使用selectedRows()方法获取选中的行。以下是一个示例代码:
```cpp
QItemSelectionModel *select = ui->tableView->selectionModel();
QModelIndexList selectedRows = select->selectedRows();
if(!selectedRows.empty()){
int currentRow = selectedRows.at(0).row();
// currentRow即为当前选中行的行号
}
```
请注意,此代码假定只选择了一行。如果选择了多行,则需要对选中的行进行迭代。
阅读全文