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('' => 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;