Selecting an index in a QListView


This might be a stupid question, but I can't for the life of me figure out how to select the row of a given index in a QListView.

QAbstractItemView , QListView's parent has a setCurrentIndex(const QModelIndex &index). The problem is, I can't construct a QModelIndex with the row number I want since the row and column field of the QModelIndex has no mutators.

QTableView, which also inherits from QAbstractItemView has a selectRow(int row) function, why in the seven hells doesn't the QListView have this?

Good ol' windows forms has the SelectedIndex property on it's listviews.

1/20/2009 3:53:10 PM

Accepted Answer

You construct the QModelIndex by using the createIndex(int row, int column) function of the model you gave to the view. QModelIndexes should only be used once, and must be created by the factory in the model.

1/20/2009 4:18:46 PM

This should help you get started

QModelIndex index = model->createIndex( row, column );
if ( index.isValid() )
    model->selectionModel()->select( index, QItemSelectionModel::Select );

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow