48 votes

comment obtenir les lignes sélectionnées dans QTableView

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

Comment obtenez-vous les numéros de ROW en QTableView utilisant QStandardItemModel J'ai utilisé le modèle de sélection et le comportement ci-dessous 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!

67voto

Luca Points 755

La méthode selectionModel() renvoie un QItemSelectionModel .

Vous pouvez utiliser la 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)
...

16voto

Alexander Points 1624

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

8voto

Louis_PIG Points 1463

essayer:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X