首页 > electron如何修改默认菜单,实现自定义菜单 | 志博日记

微信自定义菜单在线生成,electron如何修改默认菜单,实现自定义菜单 | 志博日记

互联网 2021-03-06 18:35:03

electron自定义菜单需要引入Menu模块1.先定义一个菜单模板

const template = [        {            label:'文件',            submenu:[                {                    label:'关于',                    role:'about'                },                {                    type:'separator'                },                {                    label:'关闭',                    accelerator:'Command+Q',                    click:()=>{                        win.close();                    }                }            ]        },        {            label:'编辑',            submenu:[                {                    label:'复制',                    click:()=>{                        console.log('复制');                    }                },                {                    label:'剪切',                    click:()=>{                        console.log('剪切');                    }                },                {                    type:'separator'                },                {                    label:'查找',                    accelerator:'Command+F',                    click:()=>{                        console.log('查找');                    }                },                {                    label:'替换',                    accelerator:'Command+R',                    click:()=>{                        console.log('替换');                    }                }            ]        }   ];

2.根据菜单模板生成菜单

const menu = Menu.buildFromTemplate(template);

3.将菜单设置到应用上

Menu.setApplicationMenu(menu);

完整例子如下:

const electron = require('electron');const app = electron.app;const BrowserWindow = electron.BrowserWindow;const Menu = electron.Menu;function createWindow(){   win = new BrowserWindow({    show:false,    webPreferences: {        nodeIntegration: true,        nativeWindowOpen:true,        webviewTag:true    }   });       win.loadFile('index.html');   //定义菜单模板   const template = [        {            label:'文件',            submenu:[                {                    label:'关于',                    role:'about'                },                {                    type:'separator'                },                {                    label:'关闭',                    accelerator:'Command+Q',                    click:()=>{                        win.close();                    }                }            ]        },        {            label:'编辑',            submenu:[                {                    label:'复制',                    click:()=>{                        console.log('复制');                    }                },                {                    label:'剪切',                    click:()=>{                        console.log('剪切');                    }                },                {                    type:'separator'                },                {                    label:'查找',                    accelerator:'Command+F',                    click:()=>{                        console.log('查找');                    }                },                {                    label:'替换',                    accelerator:'Command+R',                    click:()=>{                        console.log('替换');                    }                }            ]        }   ];   const menu = Menu.buildFromTemplate(template);   Menu.setApplicationMenu(menu);   win.on('ready-to-show',()=>{       win.show();   });   win.on('closed',()=>{    console.log('closed');    win = null;   });   //打开开发者工具   win.webContents.openDevTools();}app.allowRendererProcessReuse = true;app.on('ready',createWindow);app.on('window-all-closed',()=>{    console.log('window-all-closed');    if(process.platform != 'darwin'){        app.quit();    }});app.on('activate',()=>{    console.log('activate');    if(win == null) {        createWindow();    }});
免责声明:非本网注明原创的信息,皆为程序自动获取自互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件24小时内删除。

相关阅读