Eine Bildlaufleiste (auch: Scroll-Balken, Tk::Scrollbar) ist ein Widget, das an jedem Ende einen Pfeil und im mittleren Teil einen Schiebebalken anzeigt. Die Bildlaufleiste zeigt an, welcher Teil des Widget-Inhalts, dem der Scroll-Balken zugeordnet wurde, sichtbar ist. So ein zugeordnetes Widget kann beispielsweise ein Text-Widget sein, das mehr Inhalt hat, als auf einmal angezeigt werden kann. Die Position und die Größe des Schiebebalkens geben an, welcher Bereich des Dokuments sichtbar ist.
Beispiel: ein horizontaler Scroll-Balken an einem Text-Widget belegt die Hälfte der Bildlaufleiste und liegt auf der linken Seite an. Das bedeutet, dass die linke Hälfte des Inhalts des text-Widgets sichtbar ist.
#!perl
use strict;
use warnings;
use utf8;
use Tk;
my $mw = Tk::MainWindow->new();
my $separate_frame = $mw->Frame;
my $txt = $separate_frame->Text(
-wrap => 'none',
-width => 30,
-height => 3,
);
$txt->insert('end', 'W' x 60 . "\nneue Zeile");
my $scrollbar_vertical = $separate_frame->Scrollbar(
-orient => 'v',
-command => [yview => $txt]
);
my $scrollbar_horizontal = $separate_frame->Scrollbar(
-orient => 'h',
-command => [xview => $txt]
);
$txt->configure(
-yscrollcommand => ['set', $scrollbar_vertical],
-xscrollcommand => ['set', $scrollbar_horizontal],
);
$txt->grid(-row => 0, -column => 0, -sticky => 'nswe');
$scrollbar_vertical->grid(-row => 0, -column => 1, -sticky => 'ns');
$scrollbar_horizontal->grid(-row => 1, -column => 0, -sticky => 'we');
$separate_frame->gridRowconfigure(0, -weight => 1);
$separate_frame->gridColumnconfigure(0, -weight => 1);
$separate_frame->pack(-fill => 'both', -expand => 1,);
$mw->MainLoop();
exit(0);
In Perl/Tk gibt es einen sehr einfachen Weg, um Scrollbalken an ein Widget zu koppeln: das Widget Tk::Scrolled. So kann ein Textfeld beispielsweise auf diese Art schnell und bequem mit Scroll-Balken versehen werden:
#!perl
use strict;
use warnings;
use Tk;
my $mw = tkinit();
my $scrtxt = $mw->Scrolled('Text',
-scrollbars => 'se',
)->pack(-fill => 'both');
$mw->MainLoop();
exit(0);