web-dev-qa-db-ja.com

QTableViewで選択された行を取得する方法

選択した行番号を取得することについて多くのスレッドを見た後、私は本当に混乱しています。

QTableViewを使用してQStandardItemModelで行番号を取得するにはどうすればよいですか。

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

独自の選択方法がある場合は、その仕組みを説明できます。助けてくれてありがとう!

38
shett73

メソッド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)
...
58
Luca

selectedRowsQItemSelectionModel Classのメソッドを確認してください。

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();
}
13
Alexander

試してください:

QModelIndexList indexList = yourTableView->selectionModel()->selectedIndexes();
int row;
foreach (QModelIndex index, indexList) {
    row = index.row();
    ....
}
6
louis.luo