как получить выделенные строки в QTableView - PullRequest
37 голосов
/ 08 мая 2011

После просмотра множества тем о получении номеров выбранных строк я действительно запутался.

Как вы получаете числа ROW в QTableView, используя QStandardItemModel Я использовал ниже модель выбора и поведение как

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

и если у вас есть собственный способ выбора, можете ли вы объяснить, как он работает? Спасибо за помощь!

Ответы [ 3 ]

58 голосов
/ 27 июля 2011

Метод 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)
...
12 голосов
/ 22 января 2015

Проверка 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();
}
5 голосов
/ 31 декабря 2011

попробуй:

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