Thread [Tk] GUI für eine Konsolenanwendung implementieren
(27 answers)
Opened by vitek at 2014-03-28 14:24
Du bist an einem schwierigen Punkt angekommen.
GUI-Anwendungen haben einen anderen Befehlsablauf als Kommandozeilenprogramme. Erst werden Fensterelemente (Widgets) definiert, dann geht die GUI-Anwendung in einen "MainLoop". Sie wartet dann auf Benutzereingaben wie Klicks des Benutzers auf Widgets. Dies löst dazu definierte Funktionen aus. Danach kehrt die GUI-Anwendung wieder in den "MainLoop" zurück. Ein spezielles Widget (bei Windows-Anwendungen etwa der Menü-Punkt "Datei/Beenden") ruft dann eine Funktion auf, die die Anwendung insgesamt schließt. Minimales Beispiel: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #!/usr/bin/perl use warnings; use strict; use Tk; my $mw = Tk::MainWindow->new(); my $btn = $mw->Button(-text => "Click to close", -command => sub { closeWindow($mw); } ); $btn->pack(-padx => 10, -pady => 10); Tk::MainLoop(); sub closeWindow { my $mw = shift; $mw->destroy(); } Ich habe mir ein paar Jahre lang die Perl/Tk-Syntax so zusammengestöpselt. Besser ist es allerdings, auch Perls OOP kennenzulernen, dann versteht man die Tk-Syntax, die eben objektorientiert ist, besser. Wie gesagt, ein schwieriger Schritt, aber ein wichtiger ... Ansonsten: http://wiki.perl-community.de/Wissensbasis/PerlTkT... Last edited: 2014-03-29 00:09:02 +0100 (CET) |