在QT中获取tableview当前选中行
时间: 2023-10-22 19:08:03 浏览: 335
在QT中获取TableView当前选中行,可以通过以下代码实现:
```cpp
QModelIndexList selectedRows = tableView->selectionModel()->selectedRows();
if(!selectedRows.empty()){
int currentRow = selectedRows.at(0).row();
}
```
首先,我们使用`selectionModel()`方法获取TableView的选择模型。然后,我们使用`selectedRows()`方法获取选中的行的模型索引列表。最后,我们可以通过`row()`方法获取选中行的行号。
请注意,`selectedRows()`方法返回的是一个列表,因此我们可以使用`empty()`方法检查列表是否为空,以免出现空指针异常。
相关问题
qttableview获取当前选中行
要获取当前选中行的索引,可以使用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的`QTableView`中,可以通过以下代码获取当前选中行的内容:
```cpp
// 获取当前选中行的Model索引
QModelIndexList selectedIndexList = ui->tableView->selectionModel()->selectedIndexes();
if (!selectedIndexList.isEmpty())
{
// 获取第一个选中单元格所在行的Model索引
QModelIndex selectedIndex = selectedIndexList.at(0);
// 获取该行的数据模型
QAbstractItemModel* model = ui->tableView->model();
// 获取该行的数据
QVariant data = model->data(selectedIndex);
// 输出该行的数据
qDebug() << data;
}
```
这里假设`QTableView`的名称为`tableView`。如果需要获取其他列的数据,可以通过修改`selectedIndex`的列号来实现。
阅读全文