Create a menubutton with the Menubutton method.
For example:
The$mainwindow->Menubutton(-text => "File", -menuitems => [ [ 'command' => "New", "-command" => \&newfile, "-underline" => 0 ], [ 'command' => "Open", "-command" => \&openfile, "-underline" => 0 ], "-", [ 'command' => "Save", "-command" => \&savefile, "-underline" => 0 ], [ 'command' => "SaveAs", "-command" => \&saveasfile, "-underline" => 4 ] ] );
-menuitems option takes a list of lists describing
the menu items. For each menu item, an embedded anonymous list
describes the type of menu item, the label to use, and the
action to take when it is selected along with any other options
desired to configure the menu item. In this example, each
of the menu items is the 'command' type, and we use the -command
option for each item to point to the callback to execute when the
menu item is selected. We also use the -underline option to
enable the user to select a menu item using keystrokes.
(The \[quotedbl]-" represents a separator
between menu items.)In addition to 'command', other types of menus are:
'cascade'Embeds a cascade menu.
'checkbutton'Treats the menu item as a checkbutton.
'command'Executes a callback.
'radiobutton'Treats the menu item as a radiobutton.
You can configure both the menu itself and the individual menu
items. The configuration options that apply to Menubutton are:
-activebackground,
-activeforeground,
-anchor,
-background,
-bg,
-bitmap,
-borderwidth,
-bw,
-cursor,
-disabledforeground,
-font,
-foreground,
-fg,
-height,
-highlightbackground,
-highlightcolor,
-highlightthickness,
-image,
-justify,
-padx,
-pady,
-relief,
-state,
-takefocus,
-underline,
-width,
and
-wraplength.
Other Menubutton options are:
-indicatoron => boolean-menu => $menu-menuitems => listSpecifies items to create in the menu as a list of lists. See the description at the beginning of this section.
-tearoff => booleanWhether or not to allow the menu to be "torn off." Default is 1.
-text => string-textvariable => \$variablePoints to the variable containing text to be displayed in the menubutton. Button text will change as $variable does.
In addition to the menu itself, each individual menu item
can be configured. The widget configuration options that
apply to menu items are:
-activebackground,
-background,
-bg,
-bitmap,
-font,
-foreground,
-fg,
-image,
-state,
and
-underline.
Other options are:
-acceleratorDisplays an accelerator key sequence for the menu item. The key
sequence must be independently defined with a bind.
-command => callbackPointer to a function that will be called when the menu item is selected.
-indicatoron => boolean-label => string-menu => $submenu-offvalue => newvalueFor a checkbutton, specifies the value used when the checkbutton is "off."
-onvalue => newvalueFor a checkbutton, specifies the value used when the checkbutton is "on."
-selectcolor => colorFor a checkbutton or radiobutton, color of the indicator when "on."
-selectimage => imgptrFor a checkbutton or radiobutton,
defines the image to be displayed instead of text when
the radiobutton is "on". Ignored if -image is not used.
-value => valueFor a radiobutton,
sets $variable to the specified value when the radiobutton is selected
(default is 1).
-variable => \$variableAssociates the value of the menu item to the specified variable.
In addition to configure and cget, the following
methods are defined for Menubutton widgets:
AddItemsAdds menu items to the end of the menu. The arguments to AddItems
are lists configuring each menu item, similar to the lists defined
with the -menuitem option.
$menubutton->AddItems(["command" => "Print", "-command" => \&printscreen ], ["command" => "Exit", "-command" => \&exitclean ]);
commandAdds a command item to the end of the menu. The above example could have read:
$menubutton->command(-label => "Print", -command => \&printscreen); $menubutton->command(-label => "Exit", -command => \&exitclean);
checkbuttonAdds a checkbutton item to the end of the menu.
$menubutton->checkbutton(-label => "Show Toolbar",
[-variable => \$toolbar");
radiobuttonAdds a radiobutton item to the end of the menu.
$menubutton->radiobutton(-label => "Red", -variable => \$color"); $menubutton->radiobutton(-label => "Blue", -variable => \$color");
separatorcascademenuentrycgetGets information on a menu entry given an index and option to query.
entryconfigure