in reply to Entry widget questions
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;
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Entry widget questions
by snotnose (Novice) on Feb 15, 2007 at 18:36 UTC | |
by zentara (Cardinal) on Feb 15, 2007 at 19:57 UTC | |
by NatureFocus (Scribe) on Feb 15, 2007 at 21:31 UTC |