Checking for defined $_[1] may help.
From the docs describing the second parameter in the callback:
The characters to be added (or deleted). This will be undef if validation is due to focus, explcit call to validate or if change is due to -textvariable changing.
use strict; use warnings; use Tk; my $page2; my $w=0; my $wtf; my $wentry= 30; my $wcb; $page2 = MainWindow -> new(); $wcb = $page2 ->Checkbutton (-text=> '/W:', -variable=> \$w, -font=>"A +dobe 10")->pack; $wtf = $page2 ->Entry (-textvariable=> \$wentry, -width=>8, -validate=> 'key', -validatecommand=> \&CheckKey )->pack; MainLoop; print "$w\n$wentry\n"; sub CheckKey { return 1 if ! defined $_[1]; return 1 if $_[1] =~/[0-9]/; $page2->bell; return 0; }
In reply to Re: Entry widget, default value and validatecommand
by GrandFather
in thread Entry widget, default value and validatecommand
by Real Perl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |