我不熟悉在 Windows 上使用 Electron 编写程序。当我创建一个 menuTemplate
时,它会显示在我所有打开的窗口上。有没有办法只让菜单出现在我的 mainWindow
上? (不是在我创建的弹出窗口上)
Index.js
const electron = require('electron');
const { app, BrowserWindow, Menu } = electron;
let mainWindow;
let addWindow;
app.on('ready', () => {
mainWindow = new BrowserWindow({});
mainWindow.loadURL(`file://${__dirname}/main.html`);
mainWindow.on('closed', () => app.quit());
const mainMenu = Menu.buildFromTemplate(menuTemplate);
Menu.setApplicationMenu(mainMenu);
});
function createAddWindow() {
addWindow = new BrowserWindow({
width: 300,
height: 200,
title: 'Add New Todo'
});
addWindow.loadURL(`file://${__dirname}/add.html`)
}
const menuTemplate = [
{
label: 'File',
submenu: [
{
label: 'New Todo' ,
click() { createAddWindow(); }
},
{
label: 'Quit',
accelerator: process.platform === 'darwin' ? 'Command+Q' : 'Ctrl+Q',
click() {
app.quit();
}
}
]
}
];
if (process.platform === 'darwin') {
menuTemplate.unshift({});
}
最佳答案
将 Menu.setApplicationMenu(mainMenu);
更改为 mainWindow.setMenu(mainMenu)
。
Menu.setApplicationMenu
为所有 BrowserWindows 设置菜单,而win.setMenu
仅为调用它的窗口设置菜单。
关于javascript - Electron - 仅在主窗口上显示菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44589328/