Установка множественного выбора в Qtreeview

У меня есть потребность в том, что вы выбираете элементы в qtreeview. У меня есть два виджета: QTreeView слева и еще один QGLWidget справа. Если я делаю множественный выбор, я должен выделить элементы в glwidget. наоборот, мне нужно выделить элементы в древовидном представлении, если для glwidget выполняется несколько выборок. В настоящее время я могу обновить отдельный элемент, установив текущий идеал древовидного представления. Любые идеи о том, как обновлять выбор нескольких элементов в древовидном представлении с помощью множественного выбора на glwidget?

Спасибо!!

Ответ 1

Вы можете использовать модель выбора элементов дерева (treeView- > selectionMode() типа QItemSelectionModel). Он имеет сигнал selectionChanged(), с которым вы можете подключиться, чтобы получать изменения выбора древовидного списка и применять их к виду GL. При получении событий выбора из представления GL вы можете использовать QItemSelectionModel::select() для распространения их в древовидном представлении.

Чтобы включить мультиселемент в дереве, вызовите setSelectionMode( MultiSelection ).

Ответ 2

Фрэнк был быстрее, но я по-прежнему публикую мой (непроверенный) пример кода для добавления элемента к текущему выбору:

treeView->selectionModel()->select(
    treeView->model()->index(row, column, parent), 
    QItemSelectionModel::SelectCurrent);

Существуют и другие режимы выбора, см. ссылку QItemSelectionModel. SelectCurrent является короткой рукой для Select | Current, поэтому значит обновлять текущий выбор, выбирая данные элементы. Это не означает "выбрать как текущий выбор" (заменив предыдущий выбор).