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

pack - Der Geometriemanager          zurück zum Inhaltsverzeichnis

Bevor Sie jetzt weitermachenm sollten Sie erst mal wissen, wie Sie die Steuerelemente dort hinstellen wo Sie diese auch wollen und nicht dorthin wo diese durch die default-Einstellung der Methoden eben hinkommen ...

#! /usr/bin/perl -w

use strict;
use Tk;

my $main = MainWindow->new;
$main->Label(-text => 'Bitte eingabe machen :')
                ->pack(-side => 'top',  #oben
                       -anchor => 'w'); #w=west=links

$main->Button(-text => 'OK',
              -background => 'yellow' ,
              -command => \&new_window)
                 ->pack(-side => 'right'); #gelber Button rechts

my $eingabe= $main->Entry( -background => 'white')
                             ->pack(-side => 'left');

MainLoop;

sub new_window {
   my $top1 = $main->Toplevel;
   $top1->Label(-text => "Sie gaben ein : " . $eingabe->get )
                  ->pack(-side => 'top');

   $top1->Button(-text => 'close',
    -command => [ $top1 => 'destroy' ] )
                  ->pack(-side => 'bottom', -fill => 'both');

   $eingabe->delete(0,100);
   }

So siehts aus (Linux/Unix):

Steuerelement pack Linux/Unix Steuerelement pack Linux/Unix

So siehts aus (MS Windows):

Steuerelement pack MS Windows Steuerelement pack MS Windows

Ich habe den Quellcode wohl ausreichend kommentiert und überlasse Ihnen diesen nach der Devise probieren und anschauen stehen. Ich rate Ihnen dazu die jeweilige man-Pages der einzelnen Steuerelemente durchzulesen und damit an diesem Programm herumzuspielen nach dem berühmten Trial and Error-Verfahren. Zur Übersicht hier schnell alle Optionen die sie für pack verwenden können ...

Optionen Bedeutung
-side => "left" | "right" | "top" | "bottom" Platziert das Widget an die angegebene Seite des Fensters oder Frames.
-fill => "none" | "x" | "y" | "both" Das Widget breitet sich in die angegebene Richtung aus.
-expand => 1 | 0 Füllt den restlichen Platz im Fenster aus.
-padx => Betrag , -padx => Betrag Definiert einen Abstand zum anderen Widget
-anchor => "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw" | "center" Verankert das Widget in seinem Rechteck