跳到主要内容

菜单(Menu)

Menu 提供了一个菜单控件,可用于菜单栏、上下文菜单以及其他弹出菜单。上下文菜单通常通过某些特殊的键盘按键或右键单击调用,可以通过 exec() 方法执行。

可以通过 addSeparator() 插入分隔符,通过 addMenu() 添加子菜单,其他所有项目都被视为菜单项。

菜单项(MenuItem)

MenuItem 类表示菜单中的单个项目,通常用于显示文本和图标。一个菜单由一系列菜单项组成。可以通过 add()insert() 方法添加菜单项。

可以使用 clear() 清空菜单,或者使用 remove() 删除单个菜单项。

事件

点击事件(click)

当用户点击菜单项时,会触发 click 事件。

菜单项执行事件(itemExecuted)

当菜单中的任意菜单项被点击时,会触发 itemExecuted 事件。

// 监听菜单项的点击事件
const item = menu.addItem('Mesh');
item.bind('clicked', (event: ClickEvent): void => {
//菜单项被点击。
});
// // 监听菜单的菜单项执行事件
menu.bind('itemExecuted', (event: ItemExecuteEvent): void => {
event.item as MenuItem; // 被点击的菜单项。
});

示例代码

创建菜单

以下代码将创建一个菜单:

const menu = new Menu();
const scalarMenu = menu.addMenu('Scalar');
scalarMenu.addItem('Velocity');
scalarMenu.addItem('Temperature');

menu.addSeparator();
menu.addItem('Shaded');
menu.addItem('Outline');
const item = menu.addItem('Transparent');
item.checked = true;
menu.addItem('Wireframe');
menu.addItem('Mesh');
menu.addSeparator();
menu.addItem('Hide');

menu.exec(new Point(100, 100));

为菜单项添加图标

可以为菜单项添加图标,代码如下:

const menu = new Menu();
menu.width = 170;

menu.addItem('Open (O)', 'open_32.png');
menu.addItem('Download');
menu.addSeparator();
const cutItem = menu.addItem('Cut (T)');
cutItem.shortcutKey = 'Ctrl+X';
const copyItem = menu.addItem('Copy (C)');
copyItem.shortcutKey = 'Ctrl+V';
copyItem.enabled = false;
menu.addItem('Rename (M)');
menu.addItem('Delete (D)');

menu.exec(new Point(100, 100));