Как программно выбрать следующую строку в QTableView - PullRequest
8 голосов
/ 13 марта 2012

У меня есть QTableView подкласс, который я отмечаю и сохраняю его состояние следующим образом:

connect(this,
        SIGNAL(clicked(const QModelIndex &)),
        this,
        SLOT(clickedRowHandler(const QModelIndex &))
    );

void PlayListPlayerView::clickedRowHandler(const QModelIndex & index)
{
    int iSelectedRow = index.row();
    QString link = index.model()->index(index.row(),0, index.parent()).data(Qt::UserRole).toString();
    emit UpdateApp(1,link );
}

теперь мне нравится программно перемещать выделение на следующую строку (не нажимая строку мышью) и вызывая clickedRowHandler(...) как мне это сделать? Спасибо

1 Ответ

15 голосов
/ 13 марта 2012

У вас уже есть текущий индекс строки, поэтому используйте что-то вроде следующего, чтобы получить индекс модели для следующей строки

QModelIndex next_index = table->model()->index(row + 1, 0);

Затем вы можете установить этот индекс модели как текущий, используя

table->setCurrentIndex(next_index);

Очевидно, вам нужно убедиться, что вы не бежите за конец таблицы, и, возможно, есть несколько дополнительных шагов, чтобы убедиться, что выбран весь ряд, но это должно приблизить вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...