I have a listbox with several entries. An operation will be performed on the selected entry when a button is pushed. I'd like to know if the user has in fact selected an entry before I try to execute the operation. All my attempts have continued to generate the above error. Is there a way to compare the return of the curselection function without this error?
#!/usr/bin/perl -w use warnings; use strict; use Tk; my @lst_files = (0...10); my $file; my $mw = new MainWindow; my $frm1 = $mw -> Frame(-bg=>'LightSkyBlue1') -> pack(-fill => 'x'); my $frm11 = $frm1 -> Frame(-bg=>'LightSkyBlue1')->pack(-fill => 'x'); my $lst = $frm11 -> Scrolled('Listbox', -width => 50, -height => 5, -scrollbars => 'oe', -selectmode => 'single' ) -> pack(-side => 'bottom'); $frm1 -> Button(-width => 15, -text => "fill", -command =>\&fill_boxes +) -> pack(-side => 'top'); $frm1 -> Button(-width => 15, -text => "print", -command =>\&sample) - +> pack(-side => 'top'); MainLoop; sub fill_boxes { $lst -> delete ('0.0', 'end'); $lst -> insert('end', @lst_files); } sub sample { if($lst->curselection ne '') # <- Error msg points here { #Extract Application File Selection $file = $lst -> get($lst -> curselection); print "$file\n"; } # and then more happens }
In reply to Can't call method "curselection" on an undefined value by Araviz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |