Выбор индекса в QListView - PullRequest
       11

Выбор индекса в QListView

7 голосов
/ 20 января 2009

Это может быть глупый вопрос, но я не могу понять, как выбрать строку данного индекса в QListView.

QAbstractItemView, родитель QListView имеет setCurrentIndex (const QModelIndex & index). Проблема в том, что я не могу создать QModelIndex с нужным мне номером строки, так как поле строки и столбца в QModelIndex не имеет мутаторов.

QTableView, который также наследуется от QAbstractItemView, имеет функцию selectRow (int row), почему в семи адах QListView не имеет этого?

Хорошие старые формы окон имеют свойство SelectedIndex в своих списках.

Ответы [ 3 ]

7 голосов
/ 30 января 2009

Это должно помочь вам начать

QModelIndex index = model->createIndex( row, column );
if ( index.isValid() )
    model->selectionModel()->select( index, QItemSelectionModel::Select );
6 голосов
/ 20 января 2009

Вы конструируете QModelIndex, используя функцию createIndex (int row, int column) модели, которую вы дали представлению. QModelIndexes должен использоваться только один раз и должен создаваться фабрикой в ​​модели.

0 голосов
/ 22 марта 2012

Мой рабочий образец на Qt4.8.0 (MSVC2010 Compiller) на основе Майкла Бишопа

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 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...