erstmal ein freudiges "Hallo allerseits", da dies mein erster Beitrag ist.
Zu meiner Frage:
Ich implementiere gerade ein Datenprotokoll, welches aus verschiedenen fixen Datenstrukturen besteht.
Hier ein beispielhafter Aufbau:
Code: Alles auswählen
class value {};
class specialvalue1 : public value {};
class specialvalue2 : public value {};
class specialvalue3 : public value {};
class specialvalue4 : public value {};
class inner_structure {};
class special_inner_structure1 : public inner_structure {};
class special_inner_structure2 : public inner_structure {};
class special_inner_structure3 : public inner_structure {};
class protocol {};
--------------------------------------------
protocol
|- special_inner_structure1
| |- specialvalue1
| |- special_inner_structure2
| | |- specialvalue3
| |- specialvalue2
|
|- special_inner_structure3
|- specialvalue1
|- specialvalue4
Nun will ich das Protokoll bei eingehenden und erstellten Nachrichten visualisieren.
Dazu habe ich vor von QAbstractItemModel abzuleiten. Nun meine Verständnis-Schwierigkeit: Soll ich hier nur die übergeordnete protocol Klasse von QAbstractItemModel ableiten und die Daten von dort aus aus den Objekten holen? Das ist programmtechnisch jedoch sehr aufwändig, da es viele verschiedene Unterstrukturen gibt, die zwar die gleiche Basisklasse (Parse() Serialize()) haben aber sehr verschiedene Aufbaustrukturen. Oder ist es möglich/besser jede der Basisklassen von QAbstractItemModel abzuleiten und nur das protocol Objekt an das View zu übergeben und die QModelIndex Objekte aus den untergeordneten QAbstractItemModel über dessen Interface zu holen? Dadurch wären die Strukturen der untergeordneten Objekte gekapselt und die Implementierung würde sich vereinfachen, da ja jede Klasse selbst weiß wie sie aufgebaut ist.
Wie kann man so etwas vernünftig mit Qt Mitteln umsetzen?
Ich hoffe die Fragestellung ist verständlich. Es gibt noch keinen aussagekräftigen Code, da ich mich erst um das Design kümmern will.
Schonmal Danke für die Hilfe.
Gruß Sourcerer.