QT的tableview中获取当前行的内容
时间: 2024-02-21 08:56:41 浏览: 520
在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`的列号来实现。
相关问题
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获取当前行
您可以使用QTableView的selectionModel()方法获取选中模型,然后使用selectedRows()方法获取选中的行。以下是一个示例代码:
```cpp
QItemSelectionModel *select = ui->tableView->selectionModel();
QModelIndexList selectedRows = select->selectedRows();
if(!selectedRows.empty()){
int currentRow = selectedRows.at(0).row();
// currentRow即为当前选中行的行号
}
```
请注意,此代码假定只选择了一行。如果选择了多行,则需要对选中的行进行迭代。
阅读全文