Tk::Menu - Menuleisten

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-Quellcode

#!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();

Menu mit Icons bzw. Bildern

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.

Menüeinträge mit Bildern in Perl/Tk

#!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();
Top