[PyQt5] Model View simplifiziert erklärt

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
MoonKid
User
Beiträge: 105
Registriert: Mittwoch 10. Dezember 2014, 16:24

http://doc.qt.io/qt-5/model-view-programming.html
hab ich schon gelesen.

Das MVC- und Observer-Pattern sind mir aus Java und C++ Zeiten noch wohlbekannt.

Aber was Qt5 da jetzt von mir will, ist mir nicht ganz klar. Die Doku ist auch zu komplex und baut gleich angeberisch alle vorgefertigen Models und Views mit ein.
Ich hätte gerne ein möglichst banales simplifiziertes Beispiel, wie man MV in Qt implementieren "sollte".

Hat jemand n Tip für ein Tutorial oder ähnliches?
Benutzeravatar
Madmartigan
User
Beiträge: 200
Registriert: Donnerstag 18. Juli 2013, 07:59
Wohnort: Berlin

Wieso angeberisch? Das ist doch dort sehr gut erklärt.

MVC bedeutet nichts anderes als Trennung der Logik vom View. Du besitzt ein Model, dass deine Daten repräsentiert, der View muss nichts vom Model wissen. Dazwischen liegt der Controller respektive die Logik, welche das Model dem Input im View entsprechend manipuliert.

Bei MV ist der View und der Controller quasi(!) vereinbart, was nichts an der Trennung der Daten von der Logik ändert. Das Diagramm auf der Seite dort stellt da sehr anschaulich dar.
MoonKid
User
Beiträge: 105
Registriert: Mittwoch 10. Dezember 2014, 16:24

Du hast das MV bzw. MVC-Pattern erläutert. Wie gesagt: Das habe ich schon vor Jahren verstanden und ist hier nicht mein Problem.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

MoonKid hat geschrieben:Du hast das MV bzw. MVC-Pattern erläutert. Wie gesagt: Das habe ich schon vor Jahren verstanden und ist hier nicht mein Problem.
Ehrlich gesagt verstehe ich auch nicht, welches Problem Du eigentlich hast! :K
Dazu ist Deine Frage imho auch zu unkonkret. Was ist denn ein "einfaches" Beispiel und was willst Du daran erkennen bzw. erlernen?

Hier habe ich mal ein Beispiel für ein eigenes Model von lunar ausgegraben; es ist zwar für Qt4 sollte aber konzeptionell noch greifen.

Was willst Du denn eigentlich erreichen? Evtl. brauchst Du ja kein eigenes Modell oder gar View, sondern kommst mit den eingebauten wunderbar aus?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
Madmartigan
User
Beiträge: 200
Registriert: Donnerstag 18. Juli 2013, 07:59
Wohnort: Berlin

MoonKid hat geschrieben:Du hast das MV bzw. MVC-Pattern erläutert. Wie gesagt: Das habe ich schon vor Jahren verstanden und ist hier nicht mein Problem.
MoonKid hat geschrieben:Aber was Qt5 da jetzt von mir will, ist mir nicht ganz klar.
Das widerspricht sich zwar in meinen Augen, aber wenn es hier ein Missverständnis gibt, dann formuliere die Frage bitte explizit. Deinem Beitrag kann ich kein anderes Problem entnehmen.
Antworten