programming-examples/perl/GUI/CheckBox Menu.pl

81 lines
2.6 KiB
Perl
Raw Normal View History

2019-11-15 12:59:38 +01:00
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;