Electron 自定义软件顶部菜单以及绑定快捷键
electron 中 menu 菜单可以用来创建原生菜单,它用作应用菜单和 context 菜单
这个模块是一个主进程的模块,并且可以通过 remote 模块给渲染进程调用。
// /main/menu.js
const {Menu} = require('electron');
const template = [
{
label: '文件',
submenu: [
{
label: '新建文件',
accelerator: 'Cmd+N',
click: function() {
console.log('1 新建文件:', 1);
}
},
{
label: '新建窗口',
click: function() {
console.log('1 新建窗口:', 1);
}
}
]
},
{
label: '编辑',
submenu: [
{
label: '复制',
role: 'copy',
click: function() {
console.log('1 复制:', 1);
}
},
{
label: '粘贴',
role: 'paste',
click: function() {
console.log('1 粘贴:', 1);
}
}
]
}
];
const customMenu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(customMenu);
自定义右键菜单
// 左键菜单事件
window.addEventListener('contextmenu', function(event) {
// 阻止默认事件
event.preventDefault();
// 在当前窗口点击右击的时候弹出 定义的菜单模板
customMenu.popup({window: remote.getCurrentWindow()});
});