在QListView中选择索引

时间:2009-01-20 15:53:10

标签: c++ user-interface qt

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

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

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

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

3 个答案:

答案 0 :(得分:7)

This应该可以帮助您入门

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

答案 1 :(得分:6)

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

答案 2 :(得分:0)

我在Qt 4.8.0(MSVC 2010编译器)的工作样本基于Michael Bishop

QStandardItemModel *Model = (QStandardItemModel *)this->ui->listView_OptionsCategories->model();
QModelIndex index = Model->index(this->ui->stackedWidget->currentIndex(), 0);
if ( index.isValid() )
    this->ui->listView_OptionsCategories->selectionModel()->select( index, QItemSelectionModel::Select );