如何从电子应用程序中删除此菜单栏:
它还说“Hello World”(这是因为我下载了电子预构建,一旦我打包应用程序就会消失吗?)我没有编码这些到html,所以我不知道如何得到它!-
你可以在你的窗口上使用w.setMenu(null)或设置frame: false(这也会删除关闭、最小化和最大化选项的按钮)。参见setMenu ()或BrowserWindow ()。还要检查这个线程
w.setMenu(null)
frame: false
Electron现在有win.removeMenu() (v5.0.0新增)来删除应用程序菜单,而不是使用win.setMenu(null)。
win.removeMenu()
win.setMenu(null)
7.1电子。x似乎有一个错误,其中win.removeMenu()不能工作。唯一的解决办法是使用Menu.setApplicationMenu(null),然而,这将禁用所有菜单快捷方式,如季切换全屏等。
Menu.setApplicationMenu(null)
在新版本的Electron中,你可以在创建browserWindow时设置autoHideMenuBar: true,按Alt将再次显示菜单栏。
autoHideMenuBar: true
const mainWindow = new BrowserWindow({ autoHideMenuBar: true, })
当你打包你的应用程序时,默认菜单将不再存在,如果这在开发过程中困扰你,那么你可以在浏览器窗口上调用@TonyVincent建议的setMenu(null)。
setMenu(null)
在main.js的这一行之前:
mainWindow = new BrowserWindow({width: 800, height: 900}) mainWindow.setMenu(null) //this will r menu bar
菜单可以隐藏或auto-hidden(如在松弛或VS代码 -你可以按Alt键显示/隐藏菜单)。
---- win.setMenu(菜单) -设置菜单为窗口的菜单栏, 将其设置为null将删除菜单栏。(这将完全删除菜单) < / p >
mainWindow.setMenu(null)
mainWindow.setAutoHideMenuBar(true)
来源:https://github.com/Automattic/simplenote-electron/issues/293 < br >
还有一种制作无框窗的方法,如下图所示:
(没有关闭按钮,什么都没有。可以是我们想要的(更好的设计))
const { BrowserWindow } = require('electron') let win = new BrowserWindow({ width: 800, height: 600, frame: false }) win.show()
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
道格:https://electronjs.org/docs/api/frameless-window
win.removeMenu() Linux Windows删除窗口的菜单栏。
增加了win. removmenu()来删除应用程序菜单,而不是使用win.setMenu(null)
这是从v5中添加的,如下所示:
https://github.com/electron/electron/pull/16570
https://github.com/electron/electron/pull/16657
对于电子7.1.1,使用Menu.setApplicationMenu代替win.removeMenu()
Menu.setApplicationMenu
as per this thread: https://github.com/electron/electron/issues/16521 < / p >
最重要的是:你必须称它为在创建BrowserWindow之前!否则行不通!
const {app, BrowserWindow, Menu} = require('electron') Menu.setApplicationMenu(null); const browserWindow = new BrowserWindow({/*...*/});
由@kcpr评论!我们可以在构造函数中设置属性和许多属性
到目前为止,最新的稳定版本electron是8.3! 但是在旧版本中,我检查了v1, v2, v3, v4! 所有版本都有!< / p >
As per this link https://github.com/electron/electron/blob/1-3-x/docs/api/browser-window.md < / p >
对于v8.3 https://github.com/electron/electron/blob/v8.3.0/docs/api/browser-window.md#new-browserwindowoptions < / p >
文件链接 https://www.electronjs.org/docs/api/browser-window#new-browserwindowoptions < / p >
从文档的选项:
autoHideMenuBar Boolean(可选)-自动隐藏菜单栏,除非按下Alt键。默认为false。
这里有一个片段来说明它:
let browserWindow = new BrowserWindow({ width: 800, height: 600, autoHideMenuBar: true // <<< here })
用这个:
mainWindow = new BrowserWindow({width: 640, height: 360}) mainWindow.setMenuBarVisibility(false)
参考:https://github.com/electron/electron/issues/1415
我尝试了mainWindow.setMenu(null),但它没有工作。
BrowserWindow.setMenu()
Menu.setApplicationMenu()
setMenu()
removeMenu()
setAutoHideMenuBar()仍然可以工作,但如果你计划使用Alt作为热键修饰符,可能是一个麻烦。一旦菜单是可见的,你必须点击离开窗口(散焦点)隐藏菜单再次。
setAutoHideMenuBar()
如果应用程序有多个窗口,则不能在每个窗口上分别设置/删除菜单。删除菜单的唯一方法是使用无框架窗口方法。这恰好是我在当前应用程序中想要的,但并不是在所有情况下都是一个好的解决方案。
@"electron": "^7.1.1" : mainWindow = new browserWindow({ height: 500, width: 800}); //mainWindow.setAutoHideMenuBar(true); mainWindow.autoHideMenuBar = true;
在浏览器中没有菜单的情况下正常工作。
在这个问题的答案之后,你必须调用Menu.setApplicationMenu(null) 之前来创建窗口
对于电子7.1.1,您可以使用这个:
const {app, BrowserWindow, Menu} = require('electron') Menu.setApplicationMenu(false)
根据官方文档@ 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)
Menu.setApplicationMenu(null), && const updateErrorWindow = new BrowserWindow({autoHideMenuBar: true});
我使用的溶液在下面。现在这样比较好。
const window= new BrowserWindow({...}); window.setMenuBarVisibility(false);
2020年更新,唯一对我有用的该死的事情:
Menu.setApplicationMenu(new Menu());
setMenu(null);是最佳答案,autohidemenu将在应用程序开始时显示
setMenu(null);
autohidemenu
function createWindow(){ const win = new BrowserWindow({ width: 1500, height: 800, webPreferences:{ nodeIntergration: true } }); win.setMenu(null); win.loadFile("index.html"); } app.whenReady().then(createWindow);
在创建browserWindow时设置autoHideMenuBar为true
mainWindow = new BrowserWindow({ autoHideMenuBar: true, width: 1200, height: 800 })
这里的大多数答案对于新版本无效。对于9.0或更高版本,Menu.setApplicationMenu(null);应该可以工作。顺便说一下,Menu从电子包导出:const {Menu} = require('electron');
Menu.setApplicationMenu(null);
Menu
const {Menu} = require('electron');
电子12.0.6:
let mainWindow = new BrowserWindow({ autoHideMenuBar: true });
即使是autoHideMenuBar: true,你仍然可以用Alt键切换菜单栏。
Alt
因此,要完全隐藏它,请使用mainWindow.setMenu(null)