http://www.perlmonks.org?node_id=1095088


in reply to Tk::BrowseEntry set function -solved

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; }