Seite 1 von 1

QTreeView und expansion state

Verfasst: 24. Februar 2009 19:57
von malcheda
Hallo,

ich habe ein QTreeView und mehrere Instanzen eines eigenen Models, abgeleitet von QAbstractItemModel. Leider wird nach jeder Zuweisung des Models mittels QTreeView->setModel der Baum komplett kollabiert ( wie collapseAll() ). Wie kann ich den aktuellen Expand/Collapse -Status eines Models speichern? Dieser müsste ja im QTreeView hinterlegt sein.
Ich möchte den Status speichern und beim erneuten Wechsel des Models wieder herstellen.
Hat jemand einen Tip?
Danke im Voraus,
Daniel

Verfasst: 24. Februar 2009 20:51
von upsala
Du könntest den Status expand/collapse für jedes Item einzeln abfragen und selbst wieder setzen.

Oder du könntest versuchen mit einem Proxy-Model zu arbeiten, event. bekommt die View dann einen Proxy-Source-Model-Wechsel nicht so mit.

Warum verwendest du überhaupt verschiedene Models?

Verfasst: 24. Februar 2009 22:42
von malcheda
Danke für deine Tips.

Ein Abspeichern für jedes Item würde sicher funktionieren, halte ich aber für recht aufwändig. Zumal es recht viele Elemente sind (mehrere Tausend). Ich hätte gedacht, es geht auch einfacher...

Leider funktioniert der Vorschlag mit den Proxy's auch nicht.

Ich verwende mehrere Model, da ich für jedes "Projekt" in meiner Applikation eine eigene Model-Instanz habe, welche projektbezogene Inhalte enthalten. Wechselt man zwischen den Projekten, so wird im QTreeView der Inhalt des jeweiligen Models angezeigt.