That is happening because of the way the BrowseEntry widget handles mouse clicks.
Mouse button 1 clicks outside of a BrowseEntry selection choice list clears the current selection. So only the last BrowseEntry you adjust will (possibly) still have a curselection list.
I'm not sure exactly what you are trying to accomplish, but it seems like you are doing an awful lot of unnecessary work. Would something like this do what you want?
use strict; use warnings; use Tk; my $textboxrow = 1; my $fieldbuttonrow = 2; my @be; my $mw = tkinit; $mw -> geometry("400x200"); my $button = $mw->Button(-text => 'Add Field', -command => \&addtext +box); my $button2 = $mw->Button(-text => 'Print texts',-command => \&printte +xts); addtextbox(); MainLoop(); sub addtextbox{ my $be = $mw->BrowseEntry(-label=>"Field"); $be->insert('end', $_) for qw/dog cat mouse/; push @be, $be; $be ->grid(-row=>$textboxrow++, -column=>2); $button ->grid(-row=>$fieldbuttonrow++,-column=>2,-columnspan=>2); $button2->grid(-row=>$fieldbuttonrow ,-column=>2,-columnspan=>1); } sub printtexts{ print join ':', map { $_->Subwidget('entry')->get } @be; }
In reply to Re: perltk: error getting values from dynamically generated combo boxes
by thundergnat
in thread perltk: error getting values from dynamically generated combo boxes
by ruhroh
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |