Установка множественного выбора в QTreeView - PullRequest
11 голосов
/ 22 февраля 2011

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

Ответы [ 2 ]

10 голосов
/ 22 февраля 2011

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

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

6 голосов
/ 22 февраля 2011

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

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

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

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