我有一个表,用户可以在其中选择多行,但是我需要知道顶部和最后选择的行的索引,到目前为止,我尝试使用http://qt-project.org/doc/qt-5/QModelIndex.html进行操作:

QItemSelectionModel *selections = this->ui->tableWidget->selectionModel();
QModelIndexList selected = selections->selectedRows(3);


但是我不知道如何使用QItemSelectionModel到达表的项目。我怎样才能做到这一点? TableWidget中没有返回基于QModelIndex的项的函数,仅返回QPoint

最佳答案

为了获得选择范围中的第一项和最后一项,您可以简单地对该列表进行排序。例如:

QItemSelectionModel *selections = this->ui->tableWidget->selectionModel();
QModelIndexList selected = selections->selectedRows(3);
qSort(selected);
QModelIndex first = selected.first();
QModelIndex last = selected.last();


现在让我们获得第一个和最后一个表项:

QTableWidgetItem *firstItem = this->ui->tableWidget->item(first.row(), first.column());
QTableWidgetItem *lastItem = this->ui->tableWidget->item(last.row(), last.column());

10-04 14:18