Qt / Model - View Programmierung

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
python_hulk
User
Beiträge: 5
Registriert: Dienstag 11. März 2014, 08:54

Hallo zusammen,

ich programmiere noch nicht sehr lange mit Python.
Jetzt habe ich mich ein bisschen in die Model-View Programmierung von PySide eingelesen. Ich möchte eine Gui zu erstellen, die Informationen aus einer Datenbank anzeigen soll.
Leider ist mir noch nicht 100% klar wo ich die Daten für mein Model fülle.

Ich hätte mir das ungefähr so vorgestellt:

- Ich erstelle eine Klasse, die für den Zugriff auf eine Datenbank zuständig ist.

- eine weitere Klasse (Controller) holt sich die Informationen über die Datenbank Klasse und füllt ein Model-Objekt (QAbstractTableModel).

- meine View Klasse besitzt ein Controller-Objekt und erhält darüber das Model (Controller.getModel())
Das Model wird darauf hin meinem TableView zugewiesen (setModel())

Kann man das so machen bzw. gibt es eine bessere Variante um das umzusetzen?

Für Ratschläge wäre ich euch sehr dankbar.

Gruß
Python_hulk
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@python_hulk
Qt implementiert nicht die "reine" Lehre von MVC, wie es für Smalltalk entwickelt wurde, sondern eher ein Model-View-Konzept, bei welchem die Controller-Funktionalität etwas anders aufteilt wird. Z.B. werden Bearbeitungen als Delegates am View realisiert, welche vom Model auf das Backend "durchgeschrieben" werden (z.B. mit `setData`). Dafür brauchst Du keine komplizierte Kaskade von Klassen, in der Regel reicht es, wenn Du dem Model das Holen und Speichern von Daten beibringst und alles andere mit dem View und entsprechenden Delegates abbildest.
python_hulk
User
Beiträge: 5
Registriert: Dienstag 11. März 2014, 08:54

@jerch
Danke für die schnelle Antwort.
Ich muss mich dann wohl noch ein bisschen einlesen.
Antworten