Model/View-Architektur
Verfasst: 28. Januar 2008 21:46
Ich habe ein kleines Problem
Ich habe folgende Datenstruktur:
die ich in mit Hilfe einer List (QList<Datensatz>) in meinem "Dokument" verwalte. Ich lese die Daten beim Öffnen
aus einer XML-Datei der folgenden Form:
<datensatz x="4367" y="Hallo" z="ja" />
Jetzt möchte ich diese Liste bearbeiten können, d. h. neue Elemente einfügen und ausgewählte löschen können.
Ich habe mir mal die Model/View-Architektur und die Beispiele angesehen. Leider hat mir das irgendwie nicht weitergeholfen. Die Beispiele sind immer sehr speziell und ich habe eingentlich eher das Gefühl, dass sie nur zeigen, dass man mit wenig Code, etwas machen kann, was nach mehr aussieht. Dahinter versteckt sich dann irgenteine eingebaute Qt-Funktion, die aber nichts anderes kann, als genau das was im Beispiel gezeigt wird.
Ich denke, dass ein QTableView das beste für mich ist. Doch wie bekomme ich meine die Datenquelle (hier Meine Liste) an ein Model gekoppelt? Jede Zeile soll einem Datensatz und jede Spalte einer ihren Eigenschaften (hier x,y,z) entsprechen. Auch will ich nicht immer alle Eigenschaften im TableView anzeigen lassen, die Datensätze bearbeiten und löschen können.
Werden die Daten im Model selbst gespeichert, so dass ich dann keine Liste mehr brauche, oder kann das Model auf die Liste zugreifen?
Kann mir da jemand mit etwas Code weiterhelfen. Welche Klassen kann ich direkt verwenden? Welche muss ich reimplementieren?
Mir freundlichen Grüßen.
Thorsten
Ich habe folgende Datenstruktur:
Code: Alles auswählen
class Datensatz {
...
int x;
QString y;
bool z;
};
aus einer XML-Datei der folgenden Form:
<datensatz x="4367" y="Hallo" z="ja" />
Jetzt möchte ich diese Liste bearbeiten können, d. h. neue Elemente einfügen und ausgewählte löschen können.
Ich habe mir mal die Model/View-Architektur und die Beispiele angesehen. Leider hat mir das irgendwie nicht weitergeholfen. Die Beispiele sind immer sehr speziell und ich habe eingentlich eher das Gefühl, dass sie nur zeigen, dass man mit wenig Code, etwas machen kann, was nach mehr aussieht. Dahinter versteckt sich dann irgenteine eingebaute Qt-Funktion, die aber nichts anderes kann, als genau das was im Beispiel gezeigt wird.
Ich denke, dass ein QTableView das beste für mich ist. Doch wie bekomme ich meine die Datenquelle (hier Meine Liste) an ein Model gekoppelt? Jede Zeile soll einem Datensatz und jede Spalte einer ihren Eigenschaften (hier x,y,z) entsprechen. Auch will ich nicht immer alle Eigenschaften im TableView anzeigen lassen, die Datensätze bearbeiten und löschen können.
Werden die Daten im Model selbst gespeichert, so dass ich dann keine Liste mehr brauche, oder kann das Model auf die Liste zugreifen?
Kann mir da jemand mit etwas Code weiterhelfen. Welche Klassen kann ich direkt verwenden? Welche muss ich reimplementieren?
Mir freundlichen Grüßen.
Thorsten