52

在看了很多关于获取选定行号的线程之后,我真的很困惑。

您如何QTableView使用QStandardItemModel我在下面使用的选择模型和行为获得 ROW 编号

setSelectionBehavior(QAbstractItemView::SelectRows);
setSelectionMode(QAbstractItemView::SingleSelection);

如果你有自己的选择方式,你能解释一下它是如何工作的。谢谢您的帮助!

4

3 回答 3

73

该方法selectionModel()返回一个QItemSelectionModel.

您可以使用QItemSelectionModel类来检查/更改/其他选择

例子:

QItemSelectionModel *select = table->selectionModel();

select->hasSelection() //check if has selection
select->selectedRows() // return selected row(s)
select->selectedColumns() // return selected column(s)
...
于 2011-07-27T07:10:35.983 回答
19

类的检查selectedRows方法QItemSelectionModel

QModelIndexList selection = yourTableView->selectionModel()->selectedRows();

// Multiple rows can be selected
for(int i=0; i< selection.count(); i++)
{
    QModelIndex index = selection.at(i);
    qDebug() << index.row();
}
于 2015-01-22T09:47:17.927 回答
8

尝试:

QModelIndexList indexList = yourTableView->selectionModel()->selectedIndexes();
int row;
foreach (QModelIndex index, indexList) {
    row = index.row();
    ....
}
于 2011-12-31T18:00:22.857 回答