#!/usr/bin/perl
# http://perlmonks.org/?node_id=1212975
use strict;
use warnings;
use Tk;
use Tk::Pane;
my $mw = MainWindow->new;
$mw->geometry( '500x400+300+300' );
my @items;
my $selectedtext = '';
$mw->Button( -text => 'Exit', -command => sub { $mw->destroy },
)->pack( -side => 'bottom', -expand => 0, -fill => 'x' );
$mw->Label( -textvariable => \$selectedtext,
-width => 10,
-font => 'courier 30', -fg => 'navy',
)->pack( -side => 'right', -fill => 'y' );
my $pane = $mw->Scrolled(Pane => -scrollbars => 'oe',
-sticky => 'nsew',
)->pack(-fill => 'both', -expand => 1);
for my $text ( qw( one two three four five six seven eight nine ten )
+)
{
my $label = $pane->Label( -text => $text,
-anchor => 'w',
-fg => 'red', -font => 'courier 40',
)->pack(-fill => 'both', -expand => 1);
push @items, $label;
$label->bind('<ButtonRelease-1>' => sub {
$_->configure( -fg => 'red', -font => 'courier 40' ) for @items;
$selectedtext = $text;
$label->configure( -fg => 'green', -font => 'times 80' );
} );
}
MainLoop;