Mit Tk::Menu erstellt man Menüleisten, die z.B. die Menüpunkte für Datei speichern / Datei öffnen beinhalten. Die Buttons im Menü sind Tk::Menubuttons.
Der Quellcode zeigt die perlische Variante der Anlage der Menüstruktur. Man kann es natürlich auch anders machen (TIMTOWTDI).
#!perl
use strict;
use warnings;
use Tk;
use Tk::Menu;
my $mw = Tk::MainWindow->new();
my $menuitems = [
[Cascade => "~Datei", -menuitems =>
[
[Button => "~Neu", -command => \&new],
[Separator => ""],
[Button => "~Öffnen", -command => \&open],
[Button => "~Sichern", -command => \&save],
],
],
];
my $menu = $mw->Menu(-menuitems => $menuitems);
$mw->configure(-menu => $menu);
$mw->MainLoop();
Die Menüeinträge können auch Bilder enthalten. Mit der Option -image
kann ein Tk::Photo-Objekt spezifiziert werden, das angezeigt werden soll. In der Regel wünscht man sich Bild und Text. Damit das Bild nicht (wie sonst per Definition) den Text ausblendet muss die Option -compound
angegeben werden. Das verhält sich analog zu Buttons mit Bild.
Die Bilder stammen aus der Open Icon Library.
#!perl
use strict;
use warnings;
use utf8;
use Tk;
use Tk::Menu;
use Tk::Photo;
use Tk::PNG;
my $mw = Tk::MainWindow->new();
my $menuitems = [
[Cascade => "~Datei",
-menuitems => [
[Button => "~Neu",
-command => \&new,
-image => $mw->Photo(-file => 'pics\document-new-4.png'),
-compound => 'left',
],
[Separator => ""],
[Button => "~Hilfe",
-command => \&open,
-image => $mw->Photo(-file => 'pics\system-help-3.png'),
-compound => 'left',
],
[Button => "~Schließen",
-command => sub{ exit(0); },
-image => $mw->Photo(-file => 'pics\application-exit-2.png'),
-compound => 'left',
],
],
],
];
my $menu = $mw->Menu(-menuitems => $menuitems);
$mw->configure(-menu => $menu);
$mw->MainLoop();