PERL: БИБЛИОТЕКА ПРОГРАММИСТА



              

PERL: БИБЛИОТЕКА ПРОГРАММИСТА - стр. 513


Проблема

Требуется создать окно, в верхней части которого находится меню.

Решение

Воспользуйтесь элементами Tk Menubutton и Frame:

use Tk,

$main = MainWmdow->new(),

9 Создать для меню горизонтальную область

# в верхней части окна.

Smenubar = $main->Frame(-relief => ' raised1,

-borderwidth  => 2)

->pack (-anchor     => "nw",

-fill         => 'x"),


15.14. Создание меню с помощью Тк   543

# Создать кнопку с надписью "File для вызова меню.
$file_menu = $menubar->Menubutton(-text    => "File",

-underline => 1) ->pack    (-side    => "left" );

# Создать команды меню "File"
$file_menu->command(-label  => "Print',

-command => \&Print);

To же самое можно сделать намного проще, если воспользоваться сокращен­ной записью -menuitems:

$file_menu = $menubar->Menubutton(-text   => 'File",

-underlined 1, -menuitems=> [

[ Button => "Print",-command => \&Print ], [ Button => "Save",-command => \&Save ] ]) ->pack(-side  => "left");

Комментарий

Меню приложения можно рассматривать как совокупность четырех компонен­тов: области (Frame), кнопок меню (Menubutton), меню (Menus) и команд меню (Menu Entries). Область представляет собой горизонтальную полосу в верхней части окна, в котором находится меню. Внутри области находится набор кнопок меню, открывающих различные меню: File, Edit, Format, Buffers и т. д. Когда пользо­ватель щелкает на кнопке меню, на экране появляется соответствующее меню — вертикальный список команд.

В меню могут включаться разделители — горизонтальные линии, отделяющие один набор команд от другого.

С командами (например, Print в меню File) ассоциируются фрагменты кода. При выборе команды меню вызывается соответствующая функция. Обычно это делается так:

$file_menu->command(-label  => "Quit Immediately", -command => sub { exit } ),

С разделителями действия не связываются:




Содержание  Назад  Вперед