1.新建menu.js文件
/**
* 创建菜单,主进程渲染(建议)
*/
import { Menu } from 'electron';
//定义菜单
var template = [
{
label: '文件',
submenu: [
{
label: '新建文件',
//监听事件
click: function () {
console.log("ctrl+n")
},
//绑定快捷键
accelerator: 'ctrl+n'
},
{
label: '新建窗口'
}
]
},
{
label: '编辑',
submenu: [
{
label: '复制',
//规则
role: 'copy'
},
{
label: '剪切',
role: 'cut'
},
{
label: '重新加载',
role: 'reload'
},
]
},{
label:"打开测试窗口"
}
]
var m = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(m);
在主进程中引入
async function createWindow() {
const win = new BrowserWindow({
width: 800,
height: 800,
webPreferences: {
nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION
}
})
//在初始化窗口中引入设置好的菜单
require("./components/menu.js");
}
2.直接在主进程中修改
async function createWindow() {
var m = Menu.buildFromTemplate([
{
label: '文件',
submenu: [
{
label: '新建文件',
//监听事件
click: function () {
console.log("ctrl+n")
win.webContents.send('main', 'ok') //向渲染进程发送消息
},
//绑定快捷键
accelerator: 'ctrl+n'
},
{
label: '新建窗口'
}
]
},
{
label: '编辑',
submenu: [
{
label: '复制',
//规则
role: 'copy'
},
{
label: '剪切',
role: 'cut'
},
{
label: '重新加载',
role: 'reload'
},
]
}, {
label: "打开测试窗口",
click: () => { //点击以后触发的事件
win.webContents.openDevTools()
},
accelerator: 'f12' //绑定快捷键
}
]);
Menu.setApplicationMenu(m);
}