Eigenes Model für Liste oÄ mit eigener Klasse

Verschiedenes zu Qt
Antworten
daki
Beiträge: 6
Registriert: 13. April 2010 10:04

Eigenes Model für Liste oÄ mit eigener Klasse

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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.
daki
Beiträge: 6
Registriert: 13. April 2010 10:04

Beitrag 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?
daki
Beiträge: 6
Registriert: 13. April 2010 10:04

Beitrag von daki »

ok, vielen Dank. Nun klappt alles so wie ich mir das Vorstelle, hat sich nur um einen dicken Denkfehler gehandelt!
Antworten