我需要2个浏览器窗口一个是主窗口,另一个是子窗口我想设置子窗口 - 菜单不应该反映在主窗口上。
app.on('ready', function() {
// Create new window
// this assign the mainwindow variable as a browserwindow with
// default parameter value which will take the entire page
mainWindow = new BrowserWindow({});
childWindow = new BroserWindow({});
// Load html in window
// the below function will load the html into the window using the
//Command pathname
mainWindow.loadURL(url.format({
pathname: path.join(__dirname, 'mainWindow.html'),
protocol: 'file:',
slashes: true
}));
childWindow.loadURL(url.format({
pathname: path.join(__dirname, 'childWindow.html'),
protocol: 'file:',
slashes: true
}));
/ /
Quit app when closed
mainWindow.on('closed', function() {
app.quit();
});
// Build menu from template
const mainMenu = Menu.buildFromTemplate(mainMenuTemplate);
// Insert menu
Menu.setApplicationMenu(mainMenu);
});
//here i need to set the menu option only to the child window
//not the main window
答案 0 :(得分:1)
我不确定你的要求,但我可以告诉你要在主窗口设置menuBar
,在子窗口设置不同的menuBar
。
您可以使用win.setMenu(menu)
执行此操作:
const mainWindowMenuBar = Menu.buildFromTemplate(<Main window template>);
const childWindowMenuBar = Menu.buildFromTemplate(<Child window template>);
mainWindow.setMenu(mainWindowMenuBar);
childWindow.setMenu(childWindowMenuBar);
答案 1 :(得分:0)
您使用了 translate
,如果没有明确定义菜单,它用于设置为每个窗口的顶部菜单。(请参阅文档 doc)。您可以使用 Menu.setApplicationMenu(mainMenu);
将菜单限制在 mainWindow 中。此后,由于您的 childWindow 没有定义 Menu,默认顶部菜单将出现在那里。