У меня небольшая, но довольно неприятная проблема с Qt QTableView
Поскольку мое представление используется в StackedLayout, я должен выбрать строку на основе поля на другой странице (эта часть работает нормально).
Поэтому, когда я показываю это представление, я выбираю строку, которую я хочу, с помощью простого
QItemSelection selection = line2selection(line);
d_view->selectionModel()->select(selection, QItemSelectionModel::Select);
где line2selection создает QItemSelection, заполненный всеми индексами для всей строки.
Как я понимаю, эта часть работает нормально, но вводит еще одну проблему:
Когда я делаю shift + click, чтобы выбрать сразу несколько строк (что отлично работает, если я не выбираю строку "программно"), он всегда отображает выбор из первой строки вместо начала с выбранной в данный момент строки.
Любая идея, как я могу решить проблему?
Кстати, я тоже пытался вызвать метод selectRow на моем представлении, но, похоже, не намного лучше...
добавьте флаг QItemSelectionModel::Current
в QItemSelectionModel::Select
так, чтобы обновлялся индекс текущего элемента, этот индекс действует как якорь для мульти-select shift + click