电子 - 不同Windows中的菜单栏

时间:2017-03-24 16:40:57

标签: menu electron

在我的电子应用中,用户可以打开不同的窗口。

我在创建主窗口时初始化了菜单:

const menuContents = Menu.buildFromTemplate(menuTemplate(mainWindow))
Menu.setApplicationMenu(menuContents)

但是,当用户点击链接并打开新窗口时,该窗口中仍会显示相同的菜单栏。我想改变它和/或完全删除它。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

可能:

Example for Menus

在Renderer或Main Proccess中,使用如下菜单模板可以实现两个功能:

主菜单

function createMenu(){
    var menu = Menu.buildFromTemplate([
    {
        //your menu items
    }
    ])
    Menu.setApplicationMenu(menu);
}

第二个菜单

function createMenuwin(){
    var menu = Menu.buildFromTemplate([
    {
        //your other window menu items
    }
    ])
    Menu.setApplicationMenu(menu);
}

当您调用第二个窗口时:示例打开图像

function openIMG(path){
    win = new BrowserWindow({  
        width: 800, 
        height: 550,
       frame: true, 
        vibrancy: 'medium-light',
    });
    win.loadFile(path);
    createMenuwin();
    win.on('close', () =>{
        createMenu();
    })
}

打开第二个窗口时,使用以下内容创建应用菜单

createmenuwin()

当第二个窗口关闭时,调用事件:

win.on('close', () =>{})

在第二个窗口的关闭事件中,调用:

 createMenu();