Отображение одного дерева данных в двух разных точках
Приветствуем всех.
- У меня есть дерево предметов, как показано на рисунке выше (Дерево элементов).
- Мне нужно отобразить это дерево так, как показано на изображении (Просмотры). Он имеет два вида, вид дерева и список. В представлении дерева должно отображаться все дерево элементов, а в представлении списка должны отображаться свойства для выбранного элемента в древовидном представлении. (На изображении отображаются свойства для элемента cat)
- Способ, которым он реализован прямо сейчас, отображается в части «Текущая реализация» изображения. TreeModel содержит дерево элементов, и когда вы нажимаете на элемент в TreeView, текущий элемент отправляется в ListModel для отображения его свойств.
Проблема, с которой я сталкиваюсь, заключается в том, что в обоих случаях элементы редактируются. В древовидной структуре вы можете редактировать имена элементов, и это изменение должно появиться и в виде списка. То же самое происходит в противоположном направлении. Изменение имени элемента Cat должно отражать элемент cat treeView. Поскольку это две разные модели, изменение производится только при наведении курсора на другой вид. Что я сейчас делаю для измененного элемента в одном из представлений, я ищу элемент в другом представлении через QModelIndex :: match(), а затем просто обновляю эту часть представления через emit dataChanged(). Я не уверен, что это хороший способ. Поэтому, если возможно, вы можете дать мне несколько идей о том, как это можно сделать лучше. Спасибо.
Это будет работать. спасибо –