web-dev-qa-db-fra.com

comment obtenir les lignes sélectionnées dans QTableView

Après avoir regardé de nombreuses discussions sur l'obtention des numéros de lignes sélectionnés, je suis vraiment confus.

Comment obtenir des nombres de ROW dans QTableView en utilisant QStandardItemModel J'ai utilisé ci-dessous le modèle de sélection et le comportement comme

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

et si vous avez votre propre façon de sélectionner, pouvez-vous expliquer comment cela fonctionne. Merci pour l'aide!

38
shett73

La méthode selectionModel() renvoie un QItemSelectionModel.

Vous pouvez utiliser la classe QItemSelectionModel pour vérifier/modifier/autre (s) sélection (s)

Exemple:

QItemSelectionModel *select = table->selectionModel();

select->hasSelection() //check if has selection
select->selectedRows() // return selected row(s)
select->selectedColumns() // return selected column(s)
...
58
Luca

Vérifiez la méthode selectedRows de la classe 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();
}
13
Alexander

essayer:

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