Thread Tk: Document-View Architektur?: GUI Konzept... (18 answers)
Opened by BratHering at 2005-11-15 15:47

ptk
 2005-11-29 23:49
#45005 #45005
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=BratHering,28.11.2005, 13:42]Main.pl: Der Aufruf von Main.pl macht lediglich zwei "use" Aufrufe und sonst nichts (Module: Document.pm & View.pm). Eventuell nur noch einige Vorbereitungen im BEGIN Block und einige Nachbereitungen im END Block, also ja.
[/quote]Natürlich sollte das Skript nicht Main.pl heißen, sondern <Applikation>, schließlich ist es das Programm, das aufgerufen wird. Und es sollte typischerweise einen Aufruf
Code: (dl )
$view->run
enthalten, siehe unten.
Quote
View.pm: Dies ist das Modul für den View. Erst wenn Document.pm fertig und Fehlerfrei initialisiert worden ist, wird View.pm von Main.pl aufgerufen. Es beinhaltet die Tk-Forms und -Widgets. Auch "tkinit" und "MainLoop" befinden sich darin (ich habe es bereits ausprobiert und es scheint zu funktionieren).

Aus ästhetischen und praktischen Gründen würde ich es vermeiden, Code in einer .pm-Datei auszuführen. Besser ist es, wenn du eine run-Methode oder so schreibst, wo tkinit ... MainLoop aufgerufen wird.

Zu deinem Strukturierungsvorschlag: ich strukturiere Tk-Programme selten. Mit einigen tausend Programmzeilen kann man in Tk sehr viel erreichen und kann trotzdem bei einer Skriptdatei bleiben und den Überblick behalten. Code wird bei mir ausgelagert, wenn das Programm verschiedene User Interfaces bekommt (Kommandozeile, GUI, CGI), wenn ich Funktionalität aus anderen Skripten heraus aufrufen will oder wenn ich Teile des Programms automatisiert testen will (GUI-Anwendungen lassen sich nicht so leicht testen).

Was aber immer gut kommt, ist das Erzeugen von Widgetklassen, die man ggfs. wiederverwenden kann.

View full thread Tk: Document-View Architektur?: GUI Konzept...