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

  1. #!perl
  2. use strict;
  3. use warnings;
  4. use Tk;
  5. use Tk::Menu;
  6. my $mw = Tk::MainWindow->new();
  7. my $menuitems = [
  8. [Cascade => "~Datei", -menuitems =>
  9. [
  10. [Button => "~Neu", -command => \&new],
  11. [Separator => ""],
  12. [Button => "~Öffnen", -command => \&open],
  13. [Button => "~Sichern", -command => \&save],
  14. ],
  15. ],
  16. ];
  17. my $menu = $mw->Menu(-menuitems => $menuitems);
  18. $mw->configure(-menu => $menu);
  19. $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

  1. #!perl
  2. use strict;
  3. use warnings;
  4. use utf8;
  5. use Tk;
  6. use Tk::Menu;
  7. use Tk::Photo;
  8. use Tk::PNG;
  9. my $mw = Tk::MainWindow->new();
  10. my $menuitems = [
  11. [Cascade => "~Datei",
  12. -menuitems => [
  13. [Button => "~Neu",
  14. -command => \&new,
  15. -image => $mw->Photo(-file => 'pics\document-new-4.png'),
  16. -compound => 'left',
  17. ],
  18. [Separator => ""],
  19. [Button => "~Hilfe",
  20. -command => \&open,
  21. -image => $mw->Photo(-file => 'pics\system-help-3.png'),
  22. -compound => 'left',
  23. ],
  24. [Button => "~Schließen",
  25. -command => sub{ exit(0); },
  26. -image => $mw->Photo(-file => 'pics\application-exit-2.png'),
  27. -compound => 'left',
  28. ],
  29. ],
  30. ],
  31. ];
  32. my $menu = $mw->Menu(-menuitems => $menuitems);
  33. $mw->configure(-menu => $menu);
  34. $mw->MainLoop();
Top