这可能是一个愚蠢的问题,但我不能为我的生活弄清楚如何在QListView中选择给定索引的行。
QAbstractItemView,QListView的父级有一个setCurrentIndex(const QModelIndex& index)。问题是,我无法用我想要的行号构造一个QModelIndex,因为QModelIndex的行和列字段没有变换器。
QTableView,它也继承了QAbstractItemView有一个selectRow(int row)函数,为什么七个地狱中没有QListView有这个呢?
好的'windows表单在它的listviews上有SelectedIndex属性。
答案 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 );