Thread [Tk] GUI für eine Konsolenanwendung implementieren (27 answers)
Opened by vitek at 2014-03-28 14:24

hlubenow
 2014-04-02 22:31
#174596 #174596
User since
2009-02-22
875 articles
BenutzerIn
[default_avatar]
2014-04-02T18:41:46 vitek
In deinem Beispiel ist die Variable $text im ganzen Script "sichtbar".
Auch das MainWindow wird "global" erzeugt. D.h. Du kannst problemlos
auf die widgets aus den Unterfunktionen zugreifen.

Das ist richtig, aber in größeren Skripten versuche ich, globale Variablen zu vermeiden.
Typischerweise packe ich den GUI-Code in eine Klasse. Dann sind die Widget-Variablen klassenweit sichtbar und behindern dennoch nicht den Rest des Codes.
Bei noch größeren Projekten macht man üblicherweise sogar drei Klassen

http://de.wikipedia.org/wiki/Model_View_Controller

"View" für den GUI-Code, "Model" für die Berechnungen, und "Controller" für die Kommunikation zwischen den beiden. Aber dazu muß man schon recht gut OOP kennen.
2014-04-02T18:41:46 vitek
Ich habe auf meiner Seite eine reine Konsolenanwendung, die mir einer GUI
(mittels Startparameter startbar) erweitert wird.

Aber die Konsolenanwendung ist schon in Perl, oder?
2014-04-02T18:41:46 vitek
Wenn ich jetzt neuen Text in mein Textfeld anfügen lassen möchte, komme ich
nicht so richtig weiter. Die Unterfunktionen des scripts können auf das
Textfeld widget nicht zugreifen.

Wann soll denn neuer Inhalt in das Textfeld eingefügt werden? Wenn auf einen Button geklickt wird? Oder nach einer gewissen Zeit von selbst? Oder wenn dieses Berechnungsskript etwas ausgibt?
Wenn die Funktionen des Berechnungsskripts das Textfeld ansteuern sollen, muß man dessen Variable im Zweifel an die Funktionen übergeben. Deshalb hatte ich das oben (trotz globaler Variablen) ja so gezeigt.

Guck' Dir auch mal "Tk::Scrolled" an, das ist ein Textfeld, das man scrollen kann.

View full thread [Tk] GUI für eine Konsolenanwendung implementieren