Ich habe quasi folgenden Aufbau:
(DATA) - (CTreeItem) - (CTreeModel) - (QTreeView)
...und halt das CTreeDelegate, welches es mir ermöglicht, "interaktiv" (DATA) zu ändern.
1. Was ist nun aber, wenn ich von außen die (DATA) ändere, wie teile ich dies dem CTreeModel mit? Ein direkter Aufruf einer Methode in meinem CTreeModel?
2. Wenn ich von außen im Model etwas ändern möchte, wie sollte das geschehen?
Wenn ich über QTreeView->model() gehe, komme ich ja nicht an eigene Methoden aus CTreeModel ran, sondern nur an die, welche es schon im QAbstractItemModel gibt - richtig? Also müsste ich mir das Model meines Views merken:
Code: Alles auswählen
CTreeModel * model = new CTreeModel(...);
QTreeView * view = new QTreeView(...);
view->setModel(model);
model->customMethod(...);Code: Alles auswählen
CTreeItem * item = static_cast<CTreeItem*>(view->currentIndex().internalPointer());