The only widget I know of in Tk, that supports validation, is the Tk::Entry. Additionally, your program dosn't run as shown, it crashes because of the way you specify your -command callbacks. When you specify
the command is executed immediately when the Optionmenu is being created, and it will fail with an error. You want to wrap the command in or a sub{} like this:-command => \&sub_opt,
When you make callbacks, you set them up to be something that is "called later" not immediately.-command => sub { \&sub_opt },
Here's a bit more of an explanation:
#!/usr/bin/perl #for example the following is wrong my $row = 0; my $column = 0; for (my $i = 9; $i >= 0; $i--) { $button{$i} = $mw->Button(-text => "$i", -width => '3', -height => '1', -command => &numpress($i)) ->grid(-row => $row, -column => $column); $column++; if($column > 2){$column = 0; $row++;} } MainLoop; ####################################################### # Now the problem is here: -command => &numpress($i)) # The thing being assigned to the "-command" attribute needs # to be an anonymous subroutine, a reference to a named subroutine, # or else a reference to an array whose elements are: # named_subroutine_ref, arg1(, arg2 ...) -- in other words, # either of the following would be the right way to do what you want: -command => sub { numpress( $i ) } # or -command => [ \&numpress, $i ] #The way you had it written, your subroutine is actually being called #when the Button is being created, and Perl/Tk is trying to use the #return value of the sub as the value for "-command" -- not good.
In reply to Re: optionmenu configure problem in perl tk
by zentara
in thread optionmenu configure problem in perl tk
by vr786
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |