Mega Code Archive

 
Categories / Perl / GUI
 

CheckBox Menu

use Tk;                  my $main = MainWindow->new;         my $menubar = $main->Frame; $menubar->pack(-fill => 'x'); my $filemenu = $menubar->Menubutton(-text => 'File'); $filemenu->command(     -label       => 'Open',      -command     => sub {$text1->insert('1.0', "You chose open.\n")},     -accelerator => 'Ctrl+O', ); $main->bind('<Control-o>' => sub {$text1->insert('1.0', "You chose open.\n")}); $filemenu->cascade(-label => 'Check buttons'); $filemenu->cascade(-label => 'Radio buttons'); my $checkcascade = $filemenu->cget(-menu);  my $checkmenu = $checkcascade->Menu; $filemenu->entryconfigure('Check buttons', -menu => $checkmenu); $checkmenu->checkbutton(-label => 'Check 1', -variable => \$check1,     -command => sub {$text1->insert('1.0', "You chose check 1.\n")}); $checkmenu->checkbutton(-label => 'Check 2', -variable => \$check2,     -command => sub {$text1->insert('1.0', "You chose check 2.\n")}); $checkmenu->checkbutton(-label => 'Check 8', -variable => \$check8,     -command => sub {$text1->insert('1.0', "You chose check 8.\n")}); my $radiocascade = $filemenu->cget(-menu);  my $radiomenu = $radiocascade->Menu; $filemenu->entryconfigure('Radio buttons', -menu => $radiomenu); $radiomenu->radiobutton(-label => 'Radio 1', -variable => \$radio1,     -command => sub {$text1->insert('1.0', "You chose radio 1.\n")}); $radiomenu->radiobutton(-label => 'Radio 2', -variable => \$radio1,     -command => sub {$text1->insert('1.0', "You chose radio 2.\n")}); $radiomenu->separator; $radiomenu->radiobutton(-label => 'Radio 5', -variable => \$radio2,     -command => sub {$text1->insert('1.0', "You chose radio 5.\n")}); $radiomenu->radiobutton(-label => 'Radio 6', -variable => \$radio2,     -command => sub {$text1->insert('1.0', "You chose radio 6.\n")}); $radiomenu->separator; $filemenu->command('-label' => 'Exit', '-command' => sub {exit}); $filemenu->pack(-side => 'left'); $editmenu = $menubar->Menubutton('-text' => 'Edit')->pack('-side' =>  'left'); $editmenu->command(-label => 'Search',      -background => "red",     -command => sub     {$text1->delete('1.0', 'end');     $text1->insert('end', "You chose search.");}); $editmenu->command(-label => 'Replace',      -background => "orange",     -command => sub     {$text1->delete('1.0', 'end');     $text1->insert('end', "You chose replace.");}); $editmenu->command(-label => 'Find',      -background => "yellow",     -command => sub     {$text1->delete('1.0', 'end');     $text1->insert('end', "You chose find.");}); $editmenu->pack(-side => 'left'); $text1 = $main->Text; $text1->pack(-fill => 'both'); MainLoop;