如何从电子应用程序中删除此菜单栏:

它还说“Hello World”(这是因为我下载了电子预构建,一旦我打包应用程序就会消失吗?)我没有编码这些到html,所以我不知道如何得到它!-


当前回答

@"electron": "^7.1.1" : 

mainWindow = new browserWindow({ height: 500, width: 800});
//mainWindow.setAutoHideMenuBar(true);
mainWindow.autoHideMenuBar = true;

在浏览器中没有菜单的情况下正常工作。

其他回答

在main.js的这一行之前:

mainWindow = new BrowserWindow({width: 800, height: 900})

mainWindow.setMenu(null) //this will r menu bar

当你打包你的应用程序时,默认菜单将不再存在,如果这在开发过程中让你感到困扰,那么你可以像@TonyVincent建议的那样在浏览器窗口上调用setMenu(null)。

根据官方文档@ https://github.com/electron/electron/blob/v8.0.0-beta.1/docs/api/menu.md,从7.1.2开始正确的方法是这样做的,我已经在8.0上测试过了:

const { app, Menu } = require('electron')

Menu.setApplicationMenu(null)

在创建browserWindow时设置autoHideMenuBar为true

mainWindow = new BrowserWindow({
    autoHideMenuBar: true,
    width: 1200,
    height: 800
})

从7.0.0开始,上面的大多数解决方案不再工作。 BrowserWindow.setMenu()已经被menu . setapplicationmenu()所取代,它现在会改变所有窗口的菜单。setMenu(), removmenu()不再做任何事情,顺便说一下,它们仍然在文档中被提到。

setAutoHideMenuBar()仍然有效,但如果你计划使用Alt作为热键修饰符,可能是一个麻烦。一旦菜单是可见的,你必须点击离开窗口(散焦点)隐藏菜单再次。

如果应用程序有多个窗口,则不能在每个窗口上分别设置/删除菜单。删除菜单的唯一方法是使用无框架窗口方法。这恰好是我在当前应用程序中想要的,但并不是在所有情况下都是一个好的解决方案。