Technically speaking they are called Scrollbars (not sliders) and one
must configure the action of the desired widget to call the
Scrollbars (i.e. bind
is not involved here)
A common task using Scrollbars is to configure things like Canvas, Listbox, or a Text widgets to be updated (change appearance) when the slider of the acompanying Scrollbar is moved by the user.
As an example consider the code that sets up a twelve element Listbox and an accompanying vertical Scrollbar:
my $main = new MainWindow; my $box = $main->Listbox(-relief => 'sunken', -width => -1, # Shrink to fit -height => 5, -setgrid => 'yes'); my @items = qw(One Two Three Four Five Six Seven Eight Nine Ten Eleven Twelve); foreach (@items) { $box->insert('end', $_); } my $scroll = $main->Scrollbar(-command => ['yview', $box]);So far so good. But merely setting them up does not mean that the Listbox even knows that the Scrollbar is lying next to it. Note that the scalar variable
$scroll
is how we
refer to the Scrollbar, thus, hooking the $box
up to
handle $scroll
events is a matter of configuration:
$box->configure(-yscrollcommand => ['set', $scroll]);A complete script that makes use of this code (and adds the necessary calls to
pack
and MainLoop;
) is given as
the fifth example in
UserGuide.pod (and may be
found at http://w4.lns.cornell.edu/~pvhp/ptk/pod/.)
There was an old Perl/Tk tendency to have a bunch of ScrlFoo widgets (such as ScrlListbox). The use of such widgets is now deprecated in favor of a new Scrolled class, as in:
$w = $patent->Scrolled('Text',...);The widgets that can be ->Scrolled() include:
Previous | Return to table of contents | Next