The Menubutton Widget

Create a menubutton with the Menubutton method. For example:

$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 ] ] );

The -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 ...

Get Perl in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.