Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: TK MListbox random issue

by thundergnat (Deacon)
on Feb 11, 2013 at 19:49 UTC ( #1018230=note: print w/replies, xml ) Need Help??

in reply to TK MListbox random issue

Hmmmm.... perl 5.8.8? Sigh. Ok, I'm going to take a really wild stab. My suspicion is that your @dispRes array is empty when you are building your column headers. Change the line:

foreach my $colHdrs (@dispRes){ $ml->columnInsert('end',-text=>$colHdrs); }


foreach my $colHdrs (@dispRes || 'oops'){ $ml->columnInsert('end',-text=>$colHdrs); }

and see if that helps pinpoint the trouble.

Replies are listed 'Best First'.
Re^2: TK MListbox random issue
by lightspd (Initiate) on Feb 11, 2013 at 20:05 UTC
    Changed, but I'm not sure how it would become empty randomly. As far as 5.8.8 is concerned, I have no control over that part. I would update it if I could. I will also note that if I comment out the see line, it doesn't throw an error, but I can't select anything and if I sort, the list clears. Which I found a similiar problem and solution on perlmonks for, but it did not work for me.
      I'm not sure how it would become empty randomly.

      Yeah, me neither, but since you left out any inkling of where @dispRes and %hash come from, or how they are generated, or what might be in them, I am reduced to making wild guesses and suppositions. Having undefined column headings gives me an error similar to what you reported but I am running perl 5.16.1 so it may be different in newer Perls. Try running the following and see if your error is the same. If so, my previous comment stands, if not, well, sorry, my mind reading is not up to snuff.

      use warnings; use strict; use Tk; my %w; $w{mw} = MainWindow->new; $w{lb} = $w{mw}->Scrolled( qw/MListbox -selectmode single -scrollbars oe -font small / )->pack(-expand => 1, -fill => 'both'); for my $x (qw//) { #for my $x (qw// || 'oops') { #for my $x (qw/a b c/) { $w{lb}->columnInsert('end', -text => $x ) ; } for (1 .. 10){ my @row = ($_, $_, $_,); $w{lb}->insert('end', \@row); $w{lb}->see('end'); $w{lb}->update; } MainLoop;
        Different error. Can't call method "see" on undefined value. My bad on the code paste, I copied the wrong array in my post(will fix), the hash is returned by a xml parser. I do a dump of the data received to see what's coming in and the structure doesn't change.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1018230]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (7)
As of 2018-05-25 17:33 GMT
Find Nodes?
    Voting Booth?