in reply to I need help making loop-created buttons and entries match up...
#!/usr/bin/perl use Tk; use strict; my @parts = ("11111", "22222", "33333", "44444", "55555"); my @labels; my @entries; my @add_boxes; my $main = new MainWindow; my $i = 0; my $k = 0; while ($parts[$i]) { my $j = $i; $labels[$j] = $main->Label( -text => $parts[$j] ) ->grid( -column => 0, -row => $k ); $entries[$j] = $main->Entry( -background => 'white', -width => 8 ) ->grid( -column => 1, -row => $k ); $entries[$j]->insert('end', '0'); $add_boxes[$j] = $main->Entry( -background => 'white', -width => 8 + ) ->grid( -column => 2, -row => $k ); $add_boxes[$j]->bind( "<Return>", sub { my $currentqty = $entries[$j]->get; my $addqty = $add_boxes[$j]->get; $entries[$j]->delete('0.0', 'end'); $add_boxes[$j]->delete('0.0', 'end'); $entries[$j]->insert( 'end', $currentqty + $addqty ); $main->update; } ); $i++; $k++; } MainLoop;
#!/usr/bin/perl use Tk; use strict; my @parts = ("11111", "22222", "33333", "44444", "55555"); my %part_widgets; my $main = new MainWindow; my $k = 0; for my $i ( 0 .. $#parts ) { my $j = $i; my $label = $main->Label( -text => $parts[$i] ); my $entry = $main->Entry( -background => 'white', -width => 8 ); my $add_box = $main->Entry( -background => 'white', -width => 8 ); my $col = 0; $label ->grid( -column => $col++, -row => $k ); $entry ->grid( -column => $col++, -row => $k ); $add_box->grid( -column => $col++, -row => $k ); $entry->insert('end', '0'); $add_box->bind( "<Return>", sub { my $currentqty = $entry->get; my $addqty = $add_box->get; $entry->delete('0.0', 'end'); $entry->insert( 'end', $currentqty + $addqty ); $add_box->delete('0.0', 'end'); } ); $part_widgets{$parts[$i]} = { label => $label, entry => $entry, add_box => $add_box, }; $i++; $k++; } MainLoop;
Edit by castaway - added readmore tags
|
|---|