如何从电子应用中删除此菜单栏:
它也说"Hello World"(这是因为我下载了预先构建的电子,一旦打包应用程序就会消失?).我没有将这些代码编入html中,所以我不知道如何解决它! -
Ton*_*ent 93
您可以在窗口上使用w.setMenu(null)或设置frame: false(这也会删除关闭,最小化和最大化选项的按钮).请参阅setMenu()或BrowserWindow().同时检查这个帖子
iHa*_*169 41
用这个:
mainWindow = new BrowserWindow({width: 640, height: 360})
mainWindow.setMenuBarVisibility(false)
Run Code Online (Sandbox Code Playgroud)
参考:https : //github.com/electron/electron/issues/1415
我尝试过mainWindow.setMenu(null),但是没有用。
小智 35
对于 Electron 7.1.1,你可以使用这个:
const {app, BrowserWindow, Menu} = require('electron')
Menu.setApplicationMenu(false)
Run Code Online (Sandbox Code Playgroud)
@"electron": "^7.1.1" :
mainWindow = new browserWindow({ height: 500, width: 800});
//mainWindow.setAutoHideMenuBar(true);
mainWindow.autoHideMenuBar = true;
Run Code Online (Sandbox Code Playgroud)
在浏览器中没有菜单的情况下按预期工作。
菜单可以隐藏或自动隐藏(例如在Slack或VS Code中 -您可以按Alt来显示/隐藏菜单)。
---- win.setMenu(menu) -将菜单设置为窗口的菜单栏,将其设置为null将删除菜单栏。(这将完全删除菜单)
mainWindow.setMenu(null)
Run Code Online (Sandbox Code Playgroud)
---- win.setAutoHideMenuBar(hide) -设置窗口菜单栏是否应该自动隐藏。一旦设置菜单栏将只
显示当用户按下单Alt键。
mainWindow.setAutoHideMenuBar(true)
Run Code Online (Sandbox Code Playgroud)
资料来源:https : //github.com/Automattic/simplenote-electron/issues/293
还有一种制作无框窗口的方法,如下所示:
(没有关闭按钮,没有任何内容。可以是我们想要的(更好的设计))
const { BrowserWindow } = require('electron')
let win = new BrowserWindow({ width: 800, height: 600, frame: false })
win.show()
Run Code Online (Sandbox Code Playgroud)
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
doc:https://electronjs.org/docs/api/frameless-window
win.removeMenu()Linux Windows删除窗口的菜单栏。
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
添加了win.removeMenu()来删除应用程序菜单,而不是使用win.setMenu(null)
从v5按照以下方式添加:
https://github.com/electron/electron/pull/16570
https://github.com/electron/electron/pull/16657
小智 6
从7.0.0开始,大多数上述解决方案不再起作用。
BrowserWindow.setMenu()已由替换Menu.setApplicationMenu(),现在可以更改所有窗口上的菜单。setMenu(),removeMenu()不再执行任何操作,而在文档中仍然提到了这一点。
setAutoHideMenuBar()仍然可以使用,但是如果您打算将Alt用作热键修饰符,可能会很麻烦。菜单可见后,您必须单击远离窗口的位置(松散焦点)以再次隐藏菜单。
如果您的应用程序有多个窗口,则不能在每个窗口上分别设置/删除菜单。删除菜单的唯一方法是使用无框架窗口方法。那恰好是我当前应用程序中想要的,但是在所有情况下都不是一个好的解决方案。
小智 6
这些解决方案有错误。当使用下面的解决方案时,窗口在关闭时有延迟。
Menu.setApplicationMenu(null),
&&
const updateErrorWindow = new BrowserWindow({autoHideMenuBar: true});
Run Code Online (Sandbox Code Playgroud)
我在下面使用了解决方案。这暂时更好。
const window= new BrowserWindow({...});
window.setMenuBarVisibility(false);
Run Code Online (Sandbox Code Playgroud)
创建 browserWindow 时将 autoHideMenuBar 设置为 true
mainWindow = new BrowserWindow({
autoHideMenuBar: true,
width: 1200,
height: 800
})
Run Code Online (Sandbox Code Playgroud)
小智 5
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);
Run Code Online (Sandbox Code Playgroud)
小智 5
电子12.0.6:
let mainWindow = new BrowserWindow({
autoHideMenuBar: true
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47671 次 |
| 最近记录: |