如何从电子应用程序中删除此菜单栏:
它还说“Hello World”(这是因为我下载了电子预构建,一旦我打包应用程序就会消失吗?)我没有编码这些到html,所以我不知道如何得到它!-
如何从电子应用程序中删除此菜单栏:
它还说“Hello World”(这是因为我下载了电子预构建,一旦我打包应用程序就会消失吗?)我没有编码这些到html,所以我不知道如何得到它!-
当前回答
在创建browserWindow时设置autoHideMenuBar为true
mainWindow = new BrowserWindow({
autoHideMenuBar: true,
width: 1200,
height: 800
})
其他回答
菜单可以隐藏或自动隐藏(就像在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()
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
医生:https://electronjs.org/docs/api/frameless-window
编辑:(新)
win. removmenu () Linux Windows删除窗口的菜单栏。
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
增加了win. removmenu()来删除应用程序菜单,而不是使用win.setMenu(null)
这是从v5中添加的,如下所示:
https://github.com/electron/electron/pull/16570
https://github.com/electron/electron/pull/16657
电子v7 bug
对于电子7.1.1使用菜单。setApplicationMenu而不是win. removmenu ()
按照这个线程: https://github.com/electron/electron/issues/16521
最重要的是:你必须在创建BrowserWindow之前调用它!否则行不通!
const {app, BrowserWindow, Menu} = require('electron')
Menu.setApplicationMenu(null);
const browserWindow = new BrowserWindow({/*...*/});
更新(在BrowserWindow构造上设置autoHideMenuBar)
由@kcpr评论!我们可以在构造函数中设置属性和许多属性
到目前为止,最新的稳定版本electron是8.3! 但是在旧版本中,我检查了v1, v2, v3, v4! 所有版本都有!
根据这个链接 https://github.com/electron/electron/blob/1-3-x/docs/api/browser-window.md
对于v8.3 https://github.com/electron/electron/blob/v8.3.0/docs/api/browser-window.md#new-browserwindowoptions
文档链接 https://www.electronjs.org/docs/api/browser-window#new-browserwindowoptions
从文档的选项:
autoHideMenuBar Boolean(可选)-自动隐藏菜单栏,除非按下Alt键。默认为false。
这里有一个片段来说明它:
let browserWindow = new BrowserWindow({
width: 800,
height: 600,
autoHideMenuBar: true // <<< here
})
在main.js的这一行之前:
mainWindow = new BrowserWindow({width: 800, height: 900})
mainWindow.setMenu(null) //this will r menu bar
根据这个问题的答案,你必须在创建窗口之前调用Menu.setApplicationMenu(null)
setMenu(空);是不是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);
即使autoHideMenuBar: true,你仍然可以用Alt键切换菜单栏。
所以要完全隐藏它,使用mainwindow。setmenu (null)