#!/usr/bin/perl -- #!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(); 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 ], ); }