电子 - 仅在主窗口上显示菜单

时间:2017-06-16 12:31:29

标签: javascript electron

我刚接触在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({});
}

1 个答案:

答案 0 :(得分:5)

Menu.setApplicationMenu(mainMenu);更改为mainWindow.setMenu(mainMenu)

Menu.setApplicationMenu所有 BrowserWindows设置菜单,而win.setMenu仅为其调用的窗口设置。

相关问题