Heterogene Datensammlung als QAbstractItemModel
Verfasst: 25. Januar 2006 10:24
Hallo zusammen,
ich suche eine Lösung für folgendes Problem :
Ich will ein Model für eine Sammlung heterogener, hierarchischer Daten
erstellen, die dann an ein QTreeView, QTableView o.ä. angebunden werden sollen.
Die Klassen der Daten sehen ungefähr wie folgt aus :
Es soll nun ein Baum (zur Navigation) aufgespannt werden,
der etwa wie folgt aussieht :
Ich komme allerdings zur Zeit nicht so gut mit der
Implementierung des Models klar, da alles was ich an
Beispielen gesehen habe (Simple Tree Model,
Simple DOM Model), darauf basiert, dass im Baum
nur gleichartige Daten(TreeItems oder DomItems)
eingehängt werden. Gibt es eine Möglichkeit, das QAbstractItemModel so abzuleiten, dass es auch mit verschiedenen Klassen
klar kommt ?
Die Möglichkeit, über einen Member der Klasse Org einen Baum,
der ausschließlich TreeItems enthält, zu generieren und an ein
TreeModel zu übergeben, besteht natürlich, baut aber eine
Parallelstruktur zum eigentlichen Datenbestand auf, die ich gerne vermeiden möchte.
Für Tipps und Hinweise immer dankbar,
Kris
ich suche eine Lösung für folgendes Problem :
Ich will ein Model für eine Sammlung heterogener, hierarchischer Daten
erstellen, die dann an ein QTreeView, QTableView o.ä. angebunden werden sollen.
Die Klassen der Daten sehen ungefähr wie folgt aus :
Code: Alles auswählen
class Org : public QObject {
...
private:
QString orgid;
QList<Org *> suborgs;
QList<Material *> matliste;
QList<Personal *> orgpersliste;
};
class Material : public QObject {
...
private:
QString matid;
...
};
class Personal : public QObject {
...
private:
QString persid;
...
};
der etwa wie folgt aussieht :
Code: Alles auswählen
/
|
|-Org1
| |- OrgBeschreibung
| |- Personal
| | |- Kris
| | |- Foo
| | |- Bar
| |- Material
| | |- Säge
| | |- Hammer
| | |- Dosenöffner
| |
| |- Org 1.1
| |- OrgBeschreibung
| |- Personal
| |- Material
|- Org 2
Implementierung des Models klar, da alles was ich an
Beispielen gesehen habe (Simple Tree Model,
Simple DOM Model), darauf basiert, dass im Baum
nur gleichartige Daten(TreeItems oder DomItems)
eingehängt werden. Gibt es eine Möglichkeit, das QAbstractItemModel so abzuleiten, dass es auch mit verschiedenen Klassen
klar kommt ?
Die Möglichkeit, über einen Member der Klasse Org einen Baum,
der ausschließlich TreeItems enthält, zu generieren und an ein
TreeModel zu übergeben, besteht natürlich, baut aber eine
Parallelstruktur zum eigentlichen Datenbestand auf, die ich gerne vermeiden möchte.
Für Tipps und Hinweise immer dankbar,
Kris