comment obtenir les lignes sélectionnées dans QTableView

après avoir regardé de nombreux threads sur le fait d'obtenir des nombres de lignes sélectionnés, je suis vraiment confus.

Comment obtenir des numéros de ligne 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 il fonctionne. Merci pour l'aide!

30
demandé sur Angie Quijano 2011-05-08 16:45:13

3 réponses

La méthode selectionModel() retour QItemSelectionModel.

Vous pouvez utiliser QItemSelectionModel classe pour vérifier/modifier/autre 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)
...
49
répondu Luca 2016-03-22 21:03:03

Case selectedRows méthode de l' QItemSelectionModel Classe .

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();
}
8
répondu Alexander 2015-01-22 09:47:17

essaie:

QModelIndexList indexList = yourTableView->selectionModel()->selectedIndexes();
int row;
foreach (QModelIndex index, indexList) {
    row = index.row();
    ....
}
5
répondu louis.luo 2011-12-31 18:00:22