http://qs321.pair.com?node_id=674171


in reply to Perl Tk Hash and listbox question

You should use strict!

This code prints the selected entry when you double click on the entry:
#!/usr/bin/perl use strict; use warnings; use Tk; # Variables my $bx_w = 80; my %hash = ( "Test1" => [qw/a b c d/], "Test2" => [qw/e f g h/], ); my $mw = MainWindow->new(); $mw->title("test"); $mw->minsize(qw/79 4/); #$mw->maxsize(qw/79 4/); my $lz_f = $mw->Frame()->pack(-side =>'top',); #&creation; foreach my $label(keys %hash) { my $lngth = $#{$hash{$label}}; my $lbl = $lz_f->Label( -text => $label, -bg => 'white', -width => $bx_w, )->pack( -side => 'top', -expand => 'both', ); my $lstbx = $lz_f->Listbox( -bg=>'lightgrey', -relief=>'flat', -height=>$lngth, -width=>$bx_w, )->pack( -side=>'top', ); foreach my $i ( 0 .. $#{ $hash{$label}} ) { $lstbx->insert($i, $hash{$label}[$i]); } $lstbx->bind( '<Double-1>' => sub{ my ($index) = $lstbx->curselect +ion; print $lstbx->get($index) } ); } MainLoop();

Replies are listed 'Best First'.
Re^2: Perl Tk Hash and listbox question
by kayinstorm (Initiate) on Mar 14, 2008 at 18:46 UTC
    Thanks!! That is what I needed!!