Установка множественного выбора в 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
, поэтому значит обновлять текущий выбор, выбирая данные элементы. Это не означает "выбрать как текущий выбор" (заменив предыдущий выбор).