|
Perl mit dem Tk-Modul Teil 9
|
Steuerelemente - Scrollbar Listbox 
Sie haben ja bereits kurz gesehen wie Sie Listboxen einsetzen können. Richtig funktional werden diese aber erst mit Hilfe einer Scrollfunktion einer Scrollbar.
Sehen wir uns also ein Beispiel an wie Sie durch eine Liste scrollen können ...
#! /usr/bin/perl -w
use strict;
use Tk;
my $main = MainWindow->new;
my $box = $main->Listbox(-height => 5);
my @items = qw(Eins Zwei Drei Vier Fünf Sechs Sieben Acht Neun Zehn);
foreach (@items) {
$box->insert('end', $_);
}
my $scroll = $main->Scrollbar(-command => ['yview', $box]);
$box->configure(-yscrollcommand => ['set', $scroll]);
$box->pack(-side => 'left', -fill => 'both', -expand => 1);
$scroll->pack(-side => 'right', -fill => 'y');
MainLoop;
So siehts aus (Linux/Unix):
So siehts aus (MS Windows):
Entscheidend sind die beiden Zeilen ...
my $scroll = $main->Scrollbar(-command => ['yview', $box]);
$box->configure(-yscrollcommand => ['set', $scroll]);
Das Kommando ['yview', $box] in der Scrollbar bedeutet soviel das
Sie den "Scrollbutton" in y-Richtung, also Auf-und Abbewegen können. Der Inhalt der dabei mitbewegt wird ist die Referenz auf die Listbox $box. Wenn Beispielsweise schreiben würden ['xview', $box] würde sich die Scrollbar nicht mehr bewegen lassen, da die x-Richtung aktiviert haben. Die Listbox müssen
Sie auch noch mit ...
-yscrollcommand => ['set', $scroll]
... auf die y-Richtung einstellen und sozusagen verbinden mit der Scrollbar. configure(..)
werden Sie auch noch häufiger sehen. Damit ist es uns möglich Widgets-Optionen zu ändern.
|