I'll throw another into the mix...
#!perl use warnings; use strict; use Tk; my @mac = ( 32, 42 ); my $mw = MainWindow->new(); my $font = 'Courier 18 bold'; my @mac_entry; for ( 0 .. 5 ) { $mac_entry[$_] = $mw->Entry( -textvariable => \$mac[$_], -width => 2, -font => $font, -validate => 'all', -validatecommand => \&valid, -invalidcommand => [ sub { invalid( $_[0] ) }, $_ ] )->pack( -side => 'left' ); $mac_entry[$_]->bind( '<KeyRelease>', [ sub { if ( $mac[ $_[1] ] =~ /^[0-9a-f]{2}$/i ) { $mac_entry[ $_[1] + 1 ]->focus if defined $mac_entry[ $_[1] + 1 ]; } }, $_ ] ); } sub valid { $_[0] =~ /^[0-9a-f]{0,2}$/i } sub invalid { my $index = shift; my $widget = $mac_entry[$index]; $widget->bell; my $background = $widget->cget('-background'); $widget->configure( -background => 'red' ); $widget->update; $widget->after( 250, sub { $widget->configure( -background => $background ) } ); } $mac_entry[0]->focus; MainLoop;
In reply to Re: Entry widget questions
by thundergnat
in thread Entry widget questions
by snotnose
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |