Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re: Enter Key focus is not happening

by zentara (Archbishop)
on May 07, 2012 at 14:00 UTC ( #969264=note: print w/replies, xml ) Need Help??

in reply to Enter Key focus is not happening

Hey again, I thought about this and tried to force the focus order to the entries, and had some partial success which MAY help you. The method I used somehow interferes with the -validate command, also if the next entry is not within view of the scrolled region, the focus advance stops. Anyways, here it is, maybe you can get some mileage out of it. Good luck.
#!/usr/bin/perl use Tk; use Tk::Entry; use Tk::Table; use Tk::LabFrame; use warnings; use strict; my $v="0.00"; my $mw = MainWindow->new; $mw->geometry("250x400"); #$mw->resizable(0,0); $mw->title("Table Example"); my @id=qw/100 101 102 103 104 105 106 107 108 109 110/; my @name=qw/AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK/; my @top2=qw/No Name Amount/; my $table_frame = $mw->LabFrame()->pack(-expand=>1, -fill=>'both'); my $table = $table_frame->Table(-columns => 10, -rows => 6, -fixedrows => 1, -scrollbars => 'oe', -relief => 'raised',-background=>'white'); my $j=0; my $i=0; my @ents; foreach my $j(1..11) { my $tmp_label=$table->Label(-text => $id[$i], -width => 8, -relief =>'raised'); my $tmp_label1 = $table->Label(-text => $name[$i], -width => 8, -relief =>'raised'); my $tmp_label2= $table->Entry( -width => 8, -relief =>'raised', -bg => 'white', -validate=>'key', #-validatecommand=>sub{ $_[1] =~m/\d\d/} , #-invalidcommand=>sub{$mw->bell} ); #$tmp_label2->bind('Tk::Entry','<Return>',sub{ shift->focusNext }); $table->put($j,1,$tmp_label); $table->put($j,2,$tmp_label1); $table->put($j,3,$tmp_label2); push @ents, $tmp_label2; $i++; } $table->pack( -expand=>1 , -fill=>'both'); my $button_frame = $mw->Frame( -borderwidth => 4 )->pack(); $button_frame->Button(-text => "Exit", -command => sub {exit})->pack() +; &defineOrder( @ents ); MainLoop; sub defineOrder { my $widget; for (my $i=0; defined( $_[$i+1] ); $i++) { $_[$i]->bind( '<Key-Return>', [\&focus, $_[$i+1]]); $_[$i]->bind( '<Tab>', [\&focus, $_[$i+1]]); } # Uncomment this line if you want to wrap around $_[ $#_ ]->bind('<Key-Return>', [\&focus, $_[0]]); $_[ $#_ ]->bind('<Tab>', [\&focus, $_[0]]); $_[0]->focus; } sub focus { my ($tk, $self) = @_; $self->focus; }

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

Replies are listed 'Best First'.
Re^2: Enter Key focus is not happening
by gocpon (Novice) on May 09, 2012 at 17:07 UTC
    Thank you very much..

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://969264]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (3)
As of 2018-05-27 22:11 GMT
Find Nodes?
    Voting Booth?