Sehr Umfangreiche Webseite zum Programmieren in C Perl CGI, Skripting, Linux, SystemprogrammierungPerl Perl Kurs Skripting Tk-Modul use Tk; Tcl/Tk Button Tk Button Steuerelement Perl Skript Tk-Modul Tk use Tk Perl mit dem Tk-Modul Teil 3

Steuerelement Button          zurück zum Inhaltsverzeichnis

Nun zu einem weiteren Steuerelement der MainWindow-Methode, den Buttons was einen Schalter darstellen soll ...

#!/usr/bin/perl -w

use strict;

use Tk;

my $fenster = MainWindow->new;

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

MainLoop;

So siehts aus (Linux/Unix):

Steuerelement Button Linux/Unix

So siehts aus (MS Windows):

Steuerelement Button MS Windows

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

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

Damit erzeugen Sie einen Schalter auf dem der Text "Klick mich" steht der bei Betätigung das Fenster schließt und eine Ausgabe in der Konsole macht.  Damit sich das Skript auch wieder beendet, sorgt im Button "-command" der eine Perl Unterfunktion aufruft bei Betätigung. Dies ist übrigens ein typischer Tk-Stil ...

"-option" => Anweisung

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

Widget-Option Bedeutung
-anchor => "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw" | "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 Aktiviert die Callback-Funktion, wenn das Widget angeklickt wird.
-height => Betrag , -width => Betrag Ändert die Höhe oder Breite des Widgets.
-justify => "left" | "right" | "center" Ausrichtung von mehrzeiligen Text.
-relief => "flat" | "groove" | "raised" | "ridge" | "sunken" | "solid" Ändert den Kantentyp.
-state => "normal" | "disabled" | "active" Der Status des Widgets.
-text => "Text" Der Textstring, der im Widget angezeigt wird.
-textvariable => \$text Wie -text , nur das sich der Text ändert, wenn $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 das Beispiel bei dem mit jedem Anklicken des Buttons, die aktuelle Uhrzeit und Datum auf dem Button steht ...

#!/usr/bin/perl -w

use strict;
use Tk;

my $main = MainWindow->new;

$_= localtime(time);
$main->Button(-textvariable => \$_,
              -command => sub { $_ = localtime(time) })->pack;

MainLoop;

So siehts aus (Linux/Unix):

Steuerelement Button Linux/Unix

So siehts aus (MS Windows):

Steuerelement Button MS Windows

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

Ein Tipp dazu. Scheuen Sie sich nicht mit diesen Optionen herumzuspielen. Diese Laden Sie gerade dazu ein.

Mehr dazu unter : man Tk::Button