Seite 1 von 1

Eigenes Model für Liste oÄ mit eigener Klasse

Verfasst: 1. August 2010 17:04
von daki
Aloa,

ich hab gerade das Gefühl mein bisheriges Verständnis des MVC ist völlig falsch, oder ich hab mit QT gerade nen gewaltigen Hänger.

Bisher kam ich nur aus der Java Ecke und hab das mit meinen eigenen QList Models oÄ immer so gehandt habt:

Ein Listenanzeiger (QList) wurde mittels einem konkreten Model (abgeleitet von AbstractListModel mit Informationen versorgt.

Dieses AbstractModel habe ich wie folgt implementiert:

AbstractModel hat eine Liste mit Referenzen auf die Objekte die es anzeigen soll und liefer auf Wunsch diese Objekte auch zurück.

Nun wollte ich das ganze mit QT in ähnlicher Art und Weise umsetzen, aber irgendwie hab ich nun immer stärker das Gefühl, ich bin am Holzweg.

Mein Plan war, ein QListViewModel für meine Klasse "Person", ich wollte dem konkreten Objekt von QListViewModel eine Liste von Personen übergeben, die es anzeigen sollte, aber QListViewModel sollte auch in der Lage sein die Objekte bzw. Zeiger an andere Funktionen weiterzureichen (via getModelAt(x) etc).

Sämtliche Beispielimplementierungen zu einem eigenen Model die ich aber bisher fand, arbeiteten mit QVariant -> Hilft mir aber nun nicht wirklich was.

In der QT Dokumentation bin ich nur auf diesen, recht umfangreichen Artikel gestoßen, der mir aber bei meinem Problem nicht geholfen hat, sondern - eher im gegenteil - meine Verwirrung weiter gesteigert hat:

http://doc.qt.nokia.com/4.6/model-view-programming.html

Gibt es irgendwo ein schönes Beispiel, wie ich Listen/Tabell oÄ mit meinen eigenen Objekten/Klassen nutzen kann? Bzw. wie das Ganze in QT umgesetzt wird?

Ich hoffe mir konnte jemand folgen und mir eventuell helfen,

viele Grüße

Verfasst: 1. August 2010 18:21
von upsala
Hier findet man ein paar Beispiele: http://doc.qt.nokia.com/4.6/examples-itemviews.html

Und denn QVariant kannst du als Java-Object-Ersatz betrachten, da es in C++ keine übergeordnete allgemeine Klasse gibt.

Verfasst: 1. August 2010 18:42
von daki
jep, das mit Variant hab ich soweit mitbekommen, aber da muss ich doch dann quasi ne Ersatz Variant Klasse ableiten?

Da Variant ja nur für die "eingebauten" Datentypen ist?

Danke für den Link zu den Beispielen, werde ich mir mal ansehn.

Nachtrag: Jetzt hats glaub ich grad klick gemacht, data liefert den Eintrag der jeweiligen Zelle/Zeile/Spalte und nicht wie von mir angenommen die Referenz auf das Objekt?

Verfasst: 1. August 2010 19:53
von daki
ok, vielen Dank. Nun klappt alles so wie ich mir das Vorstelle, hat sich nur um einen dicken Denkfehler gehandelt!