UPDATE: found problems with the previous code when having multiple BrowseEntry objects. This however works.
#!/usr/bin/perl
use Tk;
use Tk::BrowseEntry;
use strict;
my $mw = MainWindow->new();
my $hddSel = $mw->BrowseEntry()->pack;
foreach my $c (1..50) {
$hddSel->insert("end",$c);
}
$hddSel->Subwidget("slistbox")->selectionSet(0);
$hddSel->LbCopySelection($hddSel); #use the widgets internal method to
+ copy the selected value to the entry
print "CURRENT VALUE: ".$hddSel->Subwidget("slistbox")->get((@{$hddSel
+->Subwidget("slistbox")->curselection})[0])."\n";
MainLoop;
sub getValue {
my ($getW) = @_;
return $getW->cget( '-textvariable' );
}
sub setValue {
my ($setW, $index) = @_;
my $lb = $setW->Subwidget('slistbox')->Subwidget('listbox');
my $var_ref = $setW->cget('-textvariable');
$lb->selection('clear', 0, 'end');
$lb->selectionSet($index);
$$var_ref = $lb->get($index);
return;
}
|