Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Tk vs Tkx for -validatecommand

by zentara (Archbishop)
on Sep 19, 2012 at 15:18 UTC ( #994473=note: print w/ replies, xml ) Need Help??


in reply to Tk vs Tkx for -validatecommand

Tk and Tkx are different, and the callbacks need to be set up differently. I don't have Tkx running on my Linux box, but from looking at the Tkx documentation for callbacks to Perl it shows this syntax for a validate command.

$entry->configure(-validatecommand => [ \&check, Tkx::Ev('%P'), $entry, ]);

I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh


Comment on Re: Tk vs Tkx for -validatecommand
Download Code
Re^2: Tk vs Tkx for -validatecommand
by shortyfw06 (Beadle) on Sep 19, 2012 at 17:32 UTC

    I tried the following which includes the callback. It isn't working properly. Does anyone see the problem? Thanks!

    #! perl use strict; use warnings; use Tkx; my $value; my $mw = Tkx::widget->new("."); my $ent = $mw->new_entry(-textvariable => \$value,-validate => 'key')- +>g_pack(); $ent->configure( -validatecommand => [sub { $_[0] =~ /^(?:|-|\d+|-\d+)$ +/ }, Tkx::Ev('%P'), $ent], -invalidcommand => \&lam_num_error); my $print_button = $mw->new_button(-text => "Print", -command => \&printx, -font => "ansi 10 bold")->g_pack(); my $reset_frm = $mw->new_frame(); $reset_frm->g_pack(-fill => 'both'); my $reset_button = $reset_frm->new_button(-text => "Reset", -command => \&do_reset, -font => "ansi 10 bold")->g_p +ack(); Tkx::MainLoop(); sub printx { print $value unless $value eq '-'; } sub do_reset { $ent->delete(0, 'end'); } sub lam_num_error { Tkx::tk___mmessageBox(-message => "The input must be an integer.") +; } __END__

      :) You're still stuck in your Tk.pm-isms

      If you run your program you'll get a nice error

      Can't call method "configure" without a package or object reference

      g_pack doesn't return an object

        Yes, I'm having such a hard time with this... I got the error but it points to line 10 which doesn't have a g_pack command? I don't understand what the problem is. Does this mean the g_pack for the entry didn't work?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://994473]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (8)
As of 2015-07-03 16:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (54 votes), past polls