Tutorial zu Perl mit dem Tk-Modul

Kapitel 3 : Steuerelement - Button


Zurück Index Weiter


Nun zu einem weiteren Steuerelement des MainWindow Objekts, den Buttons oder Schaltern. Jeder kennt diese Fensterelemente, Buttons befinden sich zum Beispiel in Dialogfenstern und es stehen Schriftzüge auf ihnen wie z.B. "OK" oder "Abbrechen". Man kann aber auch Bilder auf den Buttons anzeigen. Aber bleiben wir zunächst bei einfachen Buttons mit Texten:

klick_mich.pl

#!/usr/bin/perl use strict; use warnings;  use Tk;  my $fenster = MainWindow->new();  my $schalter = $fenster->Button(-text    => 'Klick mich',                                 -command => sub { print "Zurück in der Konsole\n";                                                   exit 0;                                                 },                                )                          ->pack();  MainLoop();

So sieht das Ergebnis unter Linux/Unix aus:

tk2.png

und so unter Windows:

tk2_win.png

Im Gegensatz zum Beispiel mit dem Label, haben wir hier die MainWindow Methode Button verwendet. Mit den Zeilen

my $schalter = $fenster->Button(-text    => 'Klick mich',
                                -command => sub { print "Zurück in der Konsole\n";
                                                  exit 0;
                                                },
                               )

haben Sie einen Schalter erzeugt, auf dem der Text "Klick mich" steht und der bei Betätigung eine Ausgabe in der Konsole schreibt und das Fenster schließt. Dafür wird in der dem Schalter per -command zugewiesenen Funktion, die beim Klicken auf den Schalter ausgeführt wird, die Perl-Funktion exit aufgerufen.

Dies ist übrigens ein typischer Tk-Stil, Parameter festzulegen:

-option => Anweisung

Hier ein paar Widget-Optionen, die wir noch häufiger anwenden werden:

Widget-Option mögliche Werte Bedeutung
-anchor "n", "ne", "e", "se", "s", "sw", "w", "nw" oder "center" Der Text wird an dieser Position verankert.
-background Farbe Legt die Hintergrundfarbe des Widget fest.
-borderwidth Betrag Ändert die Breite des Rahmens.
-command Callback (Funktionsreferenz, anonyme Subroutine oder anonyme Liste, deren erstes Element eine Funktionsreferenz und deren weitere Elemente Parameter für diese Funktion sind ): \&myfunc, sub { ... } oder [ \&myfunc, $arg1, $arg2, \@arg3 ] Aktiviert die Callback-Funktion, wenn das Widget angeklickt wird.
-foreground Farbe Legt die Schriftfarbe des Widgets fest
-height Betrag Ändert die Höhe des Widgets.
-width Betrag Ändert die Breite des Widgets.
-justify "left", "right" oder "center" Ausrichtung von mehrzeiligen Text.
-relief "flat", "groove", "raised", "ridge", "sunken" oder "solid" Ändert den Kantentyp.
-state "normal", "disabled" oder "active" Der Status des Widgets.
-text "Text" Der Textstring, der im Widget angezeigt wird.
-textvariable Variablenreferenz: \$text= Wie -text , nur das sich der Text ändert, wenn die Variable =$text sich ändert.
-title "Titel" Gibt dem Widget einen Titel. Funktioniert nur bei Frames und Fenstern.

Im nächsten Beispiel werden Sie den Text des Buttons während der Ausführung des Programms ändern. Dafür verwendet man die Option

-textvariable => \$variable

Hierzu ein Beispiel, bei dem mit jedem Anklicken des Buttons die aktuelle Uhrzeit und Datum auf dem Button angezeigt wird:

zeit_button.pl

#!/usr/bin/perl use strict; use warnings;  use Tk;  my $main = MainWindow->new();  my $time = localtime();  $main->Button(-textvariable => \$time,               -command => sub { $time = localtime() },              )        ->pack();  MainLoop();

So sieht das Ergebnis unter Linux/Unix aus:

tk3.png

und so unter Windows:

tk3_win.png

Die Funktion localtime gibt uns das aktuelle Datum mit Uhrzeit wieder.

Scheuen Sie sich nicht mit den Optionen der Button-Methode herumzuspielen. Sie laden geradezu dazu ein.

Mehr zum Steuerelement Button findet man unter man Tk::Button und perldoc Tk::Button


Zurück Index Weiter


-- ChristianDuehl - 09 Dec 2003

-- ChristianDuehl - 10 Dec 2003

-- ChristianDuehl - 18 Dec 2003
Topic attachments
I Attachment Action Size Date Who Comment
klick_mich.pl.txttxt klick_mich.pl.txt manage 0.4 K 2003-12-09 - 16:57 ChristianDuehl Das Programm klick_mich.pl
zeit_button.pl.txttxt zeit_button.pl.txt manage 0.3 K 2003-12-09 - 16:58 ChristianDuehl Das Programm zeit_button.pl
Topic revision: r8 - 2009-04-19 - 19:51:19 - JohnMrziglod
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.