in reply to Tk progressive search
#!/usr/bin/perl use warnings; use strict; use Tk; my @vars; my $mw = tkinit; my $row = 0; $mw->Label( -text => 'Unit cost:', ) ->grid( -row => $row, -column => 0, -sticky => 'e' ); $mw->Entry( -textvariable => \$vars[ 0 ], -validate => 'key', -validatecommand => sub { multiply( $vars[ 1 ], @_ ) }, )->grid( -row => $row++, -column => 1, -sticky => 'w' ); $mw->Label( -text => 'Quantity:', ) ->grid( -row => $row, -column => 0, -sticky => 'e' ); $mw->Entry( -textvariable => \$vars[ 1 ], -validate => 'key', -validatecommand => sub { multiply( $vars[ 0 ], @_ ) }, )->grid( -row => $row++, -column => 1, -sticky => 'w' ); $mw->Label( -text => 'Total cost:', ) ->grid( -row => $row, -column => 0, -sticky => 'e' ); $mw->Entry( -textvariable => \$vars[ 2 ], ) ->grid( -row => $row++, -column => 1, -sticky => 'w' ); sub multiply { my ( $var, $proposed ) = @_; my $product; eval { $product = ( $var || 0 ) * ( $proposed || 0 ) }; $product = 0 if $@; $vars[ 2 ] = $product; return ( 1 ); } MainLoop;
|
|---|