在QListView中选择索引

Nai*_*ler 8 c++ user-interface qt

这可能是一个愚蠢的问题,但我不能为我的生活弄清楚如何在QListView中选择给定索引的行.

QAbstractItemView,QListView的父有一个setCurrentIndex(const QModelIndex&index).问题是,我无法使用我想要的行号构造QModelIndex,因为QModelIndex的行和列字段没有mutators.

QTableView,它也继承了QAbstractItemView,有一个selectRow(int row)函数,为什么七个地狱中没有QListView有这个呢?

好的'windows表单在它的listviews上有SelectedIndex属性.

Mic*_*hop 8

应该可以帮助您入门

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


Arc*_*ane 6

您可以使用您为视图指定的模型的createIndex(int row,int column)函数来构造QModelIndex.QModelIndexes应该只使用一次,并且必须由模型中的工厂创建.

  • QAbstractListModel :: createIndex现在受到保护.您必须使用QAbstractListModel :: index(int row,int column)或在模型中使用createIndex. (4认同)