如何在QTableView中获取选定的行

she*_*t73 39 qt row qtableview

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

你如何QTableView使用QStandardItemModel我在下面的选择模型和行为中使用ROW数字

setSelectionBehavior(QAbstractItemView::SelectRows);
setSelectionMode(QAbstractItemView::SingleSelection);
Run Code Online (Sandbox Code Playgroud)

如果你有自己的选择方式,你可以解释它是如何工作的.谢谢您的帮助!

Luc*_*uca 59

该方法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)
...
Run Code Online (Sandbox Code Playgroud)

  • 供参考:该方法是[继承自`QAbstractItemView`](http://doc.qt.io/qt-5/qabstractitemview.html#selectionModel)。 (2认同)

Ale*_*der 13

检查类的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();
}
Run Code Online (Sandbox Code Playgroud)


lou*_*luo 6

尝试:

QModelIndexList indexList = yourTableView->selectionModel()->selectedIndexes();
int row;
foreach (QModelIndex index, indexList) {
    row = index.row();
    ....
}
Run Code Online (Sandbox Code Playgroud)

  • 我想知道你是否解析一个列,你会丢掉同一行两次(或更可能是其他行). (3认同)