mardi 3 novembre 2015

Selecting multiply rows in QListView

I have QListView on the form. Selection mode set to QAbstractItemView::MultiSelection. Signal and Slot connected like this connect(ui->listView->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex))...

After user selects a row i am looking for another row that must be also selected. It looks like this

void A::selectFieldPairs(const QModelIndex& index)
{
    QItemSelectionModel *selectionModel = ui->listView->selectionModel();
    QItemSelection selection;
    int value = pairs.value(index.row(), -1); //QMap<int, int> pairs
    if (value != -1)
    {
            selection.append(QItemSelectionRange(ui->listView->model()->index(value,0)));
    }

    //selection.append(QItemSelectionRange(index));
    selectionModel->select(selection,
                           QItemSelectionModel::Select |
                           QItemSelectionModel::Clear);

}

It work's if user selecting row using mouse. But if he uses arrows on keyboard index is not selected, but his pair index selected. Can you please Tell me what is the problem?

Aucun commentaire:

Enregistrer un commentaire