node.js-从Electron应用程序中删除菜单栏

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

menu-bar

它还说“ Hello World”(这是因为我下载了预先构建的电子,并且打包应用程序后就会消失吗?)。 我没有将这些代码编码到html中,所以我不知道如何将其发布!

Sean Letendre asked 2019-11-18T11:46:53Z
5个解决方案
89 votes

您可以在窗口上使用win.setMenu(null)或设置frame: false(这也会删除用于关闭,最小化和最大化选项的按钮)。 请参见setMenu()或BrowserWindow()。 还要检查这个线程

编辑:

现在,Electron具有win.setMenu(null)(在v5.0.0中已添加)来删除应用程序菜单,而不是使用win.setMenu(null)

Tony Vincent answered 2019-11-18T11:47:25Z
37 votes

用这个:

mainWindow = new BrowserWindow({width: 640, height: 360})
mainWindow.setMenuBarVisibility(false)

参考:[https://github.com/electron/electron/issues/1415]

我尝试了mainWindow.setMenu(null),但是没有用。

iHad 169 answered 2019-11-18T11:47:57Z
7 votes

当您打包应用程序时,默认菜单将不再存在,如果这在开发过程中困扰着您,则可以按照@TonyVincent的建议在浏览器窗口中调用setMenu(null)

Vadim Macagon answered 2019-11-18T11:48:26Z
6 votes

菜单可以隐藏或自动隐藏(例如在Slack或VS Code中-您可以按Alt来显示/隐藏菜单)。

相关方法:

---- win.setMenu(menu)-将菜单设置为窗口的菜单栏,    将其设置为null将删除菜单栏。 (这将完全删除菜单)

mainWindow.setMenu(null)


---- win.setAutoHideMenuBar(hide)-设置窗口菜单栏是否    应该自动隐藏自己。 设置后,菜单栏将仅
在用户按下单个Alt键时显示。

mainWindow.setAutoHideMenuBar(true)

资料来源:[https://github.com/Automattic/simplenote-electron/issues/293]

还有一种制作无框架窗口的方法,如下所示:

(没有关闭按钮,没有任何内容。可以是我们想要的(更好的设计))

const { BrowserWindow } = require('electron')
let win = new BrowserWindow({ width: 800, height: 600, frame: false })
win.show()

doc:[https://electronjs.org/docs/api/frameless-window]

Mohamed Allal answered 2019-11-18T11:49:45Z
1 votes

在main.js的这一行之前:

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

mainWindow.setMenu(null) //this will r menu bar
Edmar Pereira answered 2019-11-18T11:50:14Z
translate from https://stackoverflow.com:/questions/39091964/remove-menubar-from-electron-app