Sunday, March 27, 2011

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.

From stackoverflow
  • 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.

    Nailer : Thanks! I thought it had to be something like this!
  • This should help you get started

    QModelIndex index = model->createIndex( row, column );
    if ( index.isValid() )
        model->selectionModel()->select( index, QItemSelectionModel::Select );
    
    Nailer : Figured it out 10 days ago, but thanks for the effort =)

0 comments:

Post a Comment