Beefy Boxes and Bandwidth Generously Provided by pair Networks RobOMonk
Pathologically Eclectic Rubbish Lister

how can I coerce Tk to cluck

by stefp (Vicar)
on May 13, 2002 at 19:40 UTC ( #166259=perlquestion: print w/ replies, xml ) Need Help??
stefp has asked for the wisdom of the Perl Monks concerning the following question:

How can I force Tk to print the stack of calls that led to an error? Below is a typical error obtained from Tk. The problem is that it does not tell me where I messed up.
No -label at /usr/lib/perl5/site_perl/5.6.1/i386-linux/Tk/ li +ne 247

-- stefp -- check out TeXmacs wiki

Comment on how can I coerce Tk to cluck
Download Code
Re: how can I coerce Tk to cluck
by belg4mit (Prior) on May 13, 2002 at 20:16 UTC
    %SIG, signals. Tk also appears to have an AutoLoaded Error subroutine used for outputting other errors, you could override it (without strict).

    My (v3.078) here has no such warning in the code, and does in fact use Carp.

    perl -pew "s/\b;([mnst])/'$1/g"

Re: how can I coerce Tk to cluck
by {NULE} (Hermit) on May 13, 2002 at 20:25 UTC

    This is a good question. In this case the error is telling you that some widget requires a '-label' parameter and did not get it. (The prime example of this is the command method of a Menubutton widget, which if left without a label will produce this exact error.)

    Normally use Tk::ErrorDialog will produce a stack, with useful information, but neither that nor a custom Tk::Error sub will produce useful information in the example that I gave.

    sub Tk::Error { my ($widget, $error, @locations) = @_; print "Widget:\n\t$widget\n"; print "Error:\n\t$error\n"; print "Locations:\n"; map { print "\t$_\n" } @locations; }
    If you or anyone else comes upon a way to trap this kind of (rare) error that occurs outside of Tk's built-in error mechanism, I'd like to see it. In my experience this kind of thing is how pTk earns its undeserved bad reputation.

    Update: belg4mit snuck in a response a bit before me {g}, but I wanted to say that I have version 3.078 of as well and it does indeed produce this exact error at that line number if perform the action I describe above with the command method of a Menubutton widget. That is why this error appears to happen outside of Tk's Error handling mechanism.

    Good luck,

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://166259]
Approved by RayRay459
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2014-04-20 12:12 GMT
Find Nodes?
    Voting Booth?

    April first is:

    Results (485 votes), past polls