wxTreeList

Plattformunabhängige GUIs mit wxWidgets.
Antworten
barfoos
User
Beiträge: 25
Registriert: Dienstag 29. Juli 2008, 09:46

Hallo

ich tue mich etwas schwer mit der sauberen Trennung von GUI-Code und Anwendungslogik. Ich habe eine Baumstruktur in Form verschiedener Klasse, die alle von TreeNode erben. Ich würde jetzt gern Bäume mit Hilfe des wxTreeListCtrl darstellen und editieren.

Ich hab mich ein paar Patterns angesehen, die Helfen sollen eine saubere Trennung zwischen der GUI und den Anwendungsdaten herzustellen. Unter anderem habe ich mir ModelViewControler, ModelViewPresenter, SupervisingController und PassiveView angeschaut.

Das Problem ist nun, dass die alle auf den ersten Blick recht schön sind, und einiger (ModelViewPresenter, PassiveView) wirklich eine schön saubere Trennung hinbekommen. Dummerweiße sind die Beispiele im Grunde alle so, dass eine Änderung am Modell durch Notification dazu führt, dass der View komplett aktuallisiert wird. Das ist aber nicht sinnvoll, für große Modelle. Besser wäre, wenn sich immer nur die Teile aktuallisieren, die sich auch wirklich geändert haben. Das erfordert aber eine ziemlich große Menge an Infrastrukturcode.

Gibt es hier jemanden, der meint eine saubere GUI-Separation auch für reale Anwendungsfälle hinzubekommen, und dabei mit überschaubar viel Overhead hinkommt? Wenn ja, was kann ich tun um das auch zu schaffen? Wenn nein dann schließt sich gleich die nächste Frage an:
Nehmt ihr überhaupt einen saubere Trennung vor, oder spart ihr euch auf Grund der zu erwartenden Komplexität dann lieber den ganzen Aufwand, und schreibt den Programmcode einfach in die GUI-Klassen mit rein?

Danke und gruß
barfoos
barfoos
User
Beiträge: 25
Registriert: Dienstag 29. Juli 2008, 09:46

Erster Zwischenbericht:

Ich habe jetzt wx.lib.mvctree gefunden. Das klinkt schonmal sehr vielversprechend. Wenn es das tut, was ich will, dann bin ich bereit auf den Listteil der wxTreeLists zu verzichten.

Oder kennt jemand wx.lib.mvctreelist?

gruß
barfoos
barfoos
User
Beiträge: 25
Registriert: Dienstag 29. Juli 2008, 09:46

Zweiter Zwischenbericht:

Leider verwendet das MVCTree Widget nicht die Standard-wxTreeCtrl. Das Ergebnis bleibt also rein optisch doch deutlich hinter den Erwartungen zurück. Das ganze wirkt etwas wie ASCII-Art. Die Implementierung stellt es einem zwar frei, die Ausgabe beliebig anzupassen, aber eine automatische Plattformanpassung, wie sie wxPython sonst weitestgehend biete bekommt man damit wahrscheinlich nicht hin.

Allerdings gefällt mir der Ansatz schon sehr gut.
Die eigentliche Datenstruktur ist sehr schön, von der GUI getrennt.

Nun aber zur neuesten Erkenntnis:
das puremvc Framework stellt in Python den kompletten Infrastrukturcode zur Verfügung, den man braucht. Ich werde mir die umfangreiche Doku mal zu Gemüte führen, und dann entscheiden, ob es sich lohnt basierend darauf einen wxTreeListView zu implementieren.

Hat jemand Erfahrungen mit dem puremvc-Framework?

gruß
barfoos

PS: ja ich führe hier Monologe ;-) aber es ist mir egal
Antworten