#!perl use strict; use warnings; use Tk; use Tk::HList; my $mw = tkinit(); my $left = $mw->Frame(-bg => 'blue', -width => 210)->pack(-side => 'left', -fill => 'x', -expand => 1,); put_hlist($left); my $right = $mw->Frame(-bg => 'yellow')->pack(-side => 'left', -fill => 'both', -expand => 1,); my $info = $right->Label()->pack(-fill => 'x'); $mw->MainLoop(); =head2 put_hlist( $parent_frame ) Erstelle eine HList mit vielen Einträgen und einem Binding. =cut sub put_hlist { my $parent = shift; my $hlist = $parent->Scrolled('HList', -scrollbars => 'osoe', -selectmode => 'single', -columns => 2, -header => 1, -width => 100, -height => 30, -background => 'GhostWhite', )->pack(-fill => 'both', -expand => 1); $hlist->header( 'create',0, -text => '#id', ); $hlist->header( 'create',1, -text => 'Eintrag', ); foreach my $cnt ( 0 .. 10000 ) { $hlist->add($cnt); $hlist->item('create', $cnt, 0, -text => $cnt); $hlist->item('create', $cnt, 1, -text => "Eintrag Nr. $cnt"); } $hlist->configure( -command => [sub{ my $hlist = shift; my $info_label = shift; my $selected_item_no = $hlist->info('selection'); return 0 unless defined $selected_item_no; # -- get selected text id my $text_id = $hlist->itemCget($selected_item_no, 0, '-text'); # -- display name in right frame $info->configure(-text => $text_id); return 1; }, $hlist, $info], ); } # /put_hlist