我有一个表,用户可以在其中选择多行,但是我需要知道顶部和最后选择的行的索引,到目前为止,我尝试使用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());