乐闻世界logo
搜索文章和话题

如何从 Electron 应用程序中删除菜单栏

5 个月前提问
4 个月前修改
浏览次数78

1个答案

1

在 Electron 应用程序中,如果你想要移除整个菜单栏,你可以在创建 BrowserWindow 的时候设置 autoHideMenuBartrue 或者直接在窗口创建后使用 setMenu(null) 方法。下面是如何实现的示例代码:

使用 autoHideMenuBar

javascript
const { app, BrowserWindow } = require('electron'); function createWindow () { // 创建浏览器窗口 let win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true }, autoHideMenuBar: true // 这里设置自动隐藏菜单栏 }); // 加载应用的 index.html win.loadFile('index.html'); } app.whenReady().then(createWindow);

在这个例子中,如果按下 Alt 键,菜单栏将会临时出现。这能够让用户在需要的时候访问菜单栏,但默认情况下它是隐藏的。

使用 setMenu(null)

javascript
const { app, BrowserWindow, Menu } = require('electron'); function createWindow () { // 创建浏览器窗口 let win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } }); // 加载应用的 index.html win.loadFile('index.html'); // 在窗口准备好后移除菜单栏 win.once('ready-to-show', () => { win.setMenu(null); // 这里移除菜单栏 }); } app.whenReady().then(createWindow);

在这个例子中,setMenu(null) 会彻底移除菜单栏,不会在按下 Alt 键的时候显示它。如果你想在应用程序的整个生命周期中完全不显示菜单栏,这是一个合适的选择。

请注意,这些方法可能对不同的操作系统有不同的效果。在某些操作系统上(尤其是 macOS),即使使用 setMenu(null),顶部的应用程序菜单可能仍然存在,但会被限制为只包含少量的系统默认菜单项。在这种情况下,你可能需要更深入地自定义菜单,以达到你想要的效果。

2024年6月29日 12:07 回复

你的答案