in reply to Syntax error using Tk
#!/perl/bin/perl -w use strict; use Tk; use Tk::Button; use Tk::Entry; my $row = 0; my $column = 0; my $calc = "0.00"; my $buffer; my %button; my $mw = tkinit(-title, "Calc"); my $display = $mw->Entry(-width, 20, -justify, 'right', -textvariable, \$calc ) ->grid(-column, $column++, -row, $row++, -columnspan, 3, -pady, 2); $column = 0; #how to Capture Key Strokes $mw->bind("<KeyRelease>" , sub { &keypress } ); #use qw to arrange your key layout for my $i ( qw / 7 8 9 6 5 4 3 2 1 0 . C / ) { $button{$i} = $mw->Button(-text => "$i", -width => '5', -height => '1', -command => sub { &numpress($i)} ) ->grid(-row => $row, -column => $column, -padx, 2, -pady, 2); $column++; if($column > 2){$column = 0; $row++;} } MainLoop; sub numpress{ my $num = shift; if($num ne "C"){ $buffer .= $num; $calc = sprintf "%0.2f", $buffer; } if($num eq "C"){ $calc = "0.00"; $buffer = 0.00; } } sub keypress{ my $widget = shift; my $e = $widget->XEvent; # get event object my $key = $e->K; $key=~s/period/\./ig; if( $key =~/c/ig ){ $key = uc $key; $button{$key}->invoke; } if( $key =~/(\d)|\./){ &numpress($key); } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Syntax error using Tk
by eoin (Monk) on Feb 17, 2004 at 10:25 UTC | |
by JamesNC (Chaplain) on Feb 17, 2004 at 13:37 UTC | |
by eoin (Monk) on Feb 17, 2004 at 16:14 UTC | |
by JamesNC (Chaplain) on Feb 18, 2004 at 03:39 UTC | |
by eoin (Monk) on Feb 18, 2004 at 12:19 UTC | |
|