Ich schreibe mir gerade eine Anwendung die 2. Hauptfunktionen besitzt:
a) "Steuerung" einer Fremdanwendung via OLE.
- Die Fremdanwendung berechnet Werte und speichert diese in eine Datei ab.
- die Berechnung der Werte kann ich via einer Parameter.csv beeinflussen
(diese Parameter.csv wird bei jedem Aufruf der Fremdanwendung innerhalb der Fremdanwendung gelesen und ausgewertet.
- Mittels einer Steuerungs.csv lege ich pro Aufruf der Fremdanwendung fest wie die Parameter.csv aussieht, dh wie die Parameter der Berechnung sind.
b) editieren der Steuerungs.csv Datei
- löschen von einzelen Sätzen
- editieren der einzelnen Spalten/pro Satz
Die Anwendung schreibe ich mittels Tkinter, andere GUI-Frameworks kommen aus diversen Gründen noch nicht in Frage.Ich stehe vor dem grundlegendem Problem wie das nun als "MVC" umsetze werden kann. Als Ansatz habe ich mir mal das wie folgenden überlegt
Model:
- Datensatz
- DS-Container (Tabelle für die Datensätze)
View:
-Tkinter-Window
- Dialog Change_Parameter:
"Zeige die Datei als Tabelle an"
"der Benutzer kann die Daten ändern, löschen usw"
- Dialog Automation
"Anzeige diverse Zusammenfassung der Steuerungs.csv -> x Parameter gibt es, die Datensätze sind konsisten etc"
" Fortschritt des Ablaufs der Automation"
.....
Controller:
tja und hier fehlts mir ... soweit ich das das MVC verstanden habe wären hier dann wohl "objekte" wie:
-> Der View meldet "Anwender möchte neuen Datensatz erzeugen"
Der Controller sagt dem DS-Container: "Hey, fügt doch mal `nen neuen Datensatz ein"
Nachdem der DS-Container das getan hat, gibts in irgendeiner Form `ne Rückmeldung an den Controller und dieser meldet es dann dem View das er seine Anzeige updaten soll ?
-> Der View meldet "Der Anwender hat in Zeile 1 und Spalte 10 etwas eingegeben"
Der Controller sagt dem DS-Container: Ändere das 10.Feld des Datensatzes in der 1 Zeile
Der DS-Container meldet zurück an den Controller
Der Controller meldet dem View: "mach mal, zeig die Veränderung" an
tja, aber was bedeutet den das nun konkret ?

Fall1: neuer Datensatz:
- Der "callback" des Buttons auf dem Fenster ruft eine Methode im Controller-Objekt auf.
- Diese Methode ruft eine Methode des DS-Containers auf in dieser dann das neue Datensatzobjekt hinzugefügt wird
- Danach wird eine Methode im View aufgerufen um einen neuen Datensatz anzuzeigen
u]Fall2: Änderung:[/u]
- Der "callback" des Entry-Widgets ruft eine Methode im Controller-Objekt auf.
aehmm ... möglicjh als StrVar() traceback oder Event-Bindung
Der Controller will nun vom DS-Container einen Datensatz (??)
Der Controller sagt dem Datensatz-Objekt:"Prüf mal ob die Eingabe OK ist" (???)
Der Controller sagt dem Datensatz-Objekt:"Ändere den Wert, da dieser OK ist" (????)
oder
Der Controller übergibt den ganzen Schlammassel direkt an das Datensatzobjekt ... *g und das DS-Container Objekt ist ganz beleidigt weil es nicht gefragt wurde ????
*seufz ... kann mir da vielleicht mal jemmand auf die Sprünge helfen ???