Mega Code Archive

 
Categories / Perl / GUI
 

Create two windows

use Tk; require Tk::BrowseEntry; $numWidgets = 10; $mw = MainWindow->new(-title => "Play w/pack"); $f = $mw->Frame(-borderwidth => 1,                  -relief => 'groove')                 ->pack(-side => 'top',                  -fill => 'x'); my (@packdirs) = (); $i = 0; foreach (0..$numWidgets) {   $packdirs[$_] = 'top';   my $be = $f->BrowseEntry(-label => "Widget $_:",                           -choices => ["right", "left", "top", "bottom"],                           -variable => \$packdirs[$_], -browsecmd => \&repack)                          ->pack(-ipady => 5); } $f->Button(-text => "Repack",             -command => \&repack )          ->pack(-anchor => 'center'); $top = $mw->Toplevel(-title => "output window"); my $c; foreach (@packdirs) {   my $b = $top->Button(-text => $c++ . ": $_")             ->pack(-side => $_, -fill => 'both', -expand => 1); } MainLoop; sub repack {   @w = $top->packSlaves;   foreach (@w) { $_->packForget; }   my $e = 0;   foreach (@w)   {     $_->configure(-text => "$e: $packdirs[$e]");     $_->pack(-side => $packdirs[$e++], -fill => 'both', -expand => 1);   } }