Untermodels (Submodels)
Untermodels (Submodels)
Ich suche eine Möglichkeit in ein Mastermodell Untermodells einzuhängen. Ich habe ein Mastermodell für das gesamte Programm. Jedes Projekt, welches geöffnet wird, ist ein eigenes Projektmodell. Diese Projektmodelle sollen nun in das Mastermodell eingehängt werden, so das ich in einem Treeview jedes dieser Projekte aufgeklappen kann.
Schreib dir ein eigenes Model "ProjectModel". Wirst du sowieso machen müssen. Für deine Daten überleg dir eine eigene Struktur, unabhängig von irgendwelche Qt-MVC-Klassen.
QAbstractItemModel::createIndex() hat nun einen optionalen void-ptr, dem du jetzt deinen data-Pointer übergeben kannst. Bekommen tust du den mit QModelIndex::internalPointer() für data() und setData(). Auf deinen eigenen Typen casten und du hast deine Daten.
Wenn du nun ein neues Projekt einfügst, musst du nur deine Struktur übergeben, die Baumstruktur parsen und pro Item einen neuen Index erzeugen - samt Zeiger auf Daten. Fertig.
Schau dir dazu mal die ganzen Beispiele in der Doku zu "itemviews" an, da wirst du sicher schlauer und verstehst wie ich das oben gemeint hab.
Grüße
Franz
QAbstractItemModel::createIndex() hat nun einen optionalen void-ptr, dem du jetzt deinen data-Pointer übergeben kannst. Bekommen tust du den mit QModelIndex::internalPointer() für data() und setData(). Auf deinen eigenen Typen casten und du hast deine Daten.
Wenn du nun ein neues Projekt einfügst, musst du nur deine Struktur übergeben, die Baumstruktur parsen und pro Item einen neuen Index erzeugen - samt Zeiger auf Daten. Fertig.
Schau dir dazu mal die ganzen Beispiele in der Doku zu "itemviews" an, da wirst du sicher schlauer und verstehst wie ich das oben gemeint hab.
Grüße
Franz