gpt4 book ai didi

node.js - 如何在Electron的第二个窗口中隐藏菜单?

转载 作者:行者123 更新时间:2023-12-03 12:34:03 25 4
gpt4 key购买 nike

我正在使用Electron制作一个小型测试应用程序,下面是代码。

当您单击菜单中的about时,将出现一个新窗口。如何使菜单按钮仅在此窗口中消失?尽管这不应在主窗口中发生。

const {app, BrowserWindow, Menu} = require('electron');
const globalElectron = require('electron');

let win;
let about;

function createWindow() {
win = new BrowserWindow({
width: 700,
height: 500,
webPreferences: {
nodeIntegration: true
}
});

win.loadURL('file://' + __dirname + '/index.html').then(r => r);
win.webContents.openDevTools();
win.on('closed', () => win = null);
}

function openAboutWindow()
{
if (about) {
about.focus();
return
}

about = new BrowserWindow({
height: 185,
resizable: false,
width: 270
});

about.loadURL('file://' + __dirname + '/about.html').then(r => r);
about.on('closed', () => about = null);
}

app.on('ready', () => {
createWindow();

const template = [
{
label: 'Info',
submenu: [
{
label: 'GitHub',
click: () => {
globalElectron.shell.openExternal('https://github.com/').then(r => r);
}
},
]
},
{
label: 'About',
click: () => {
openAboutWindow();
}
}
];

Menu.setApplicationMenu(Menu.buildFromTemplate(template));
});

app.on('window-all-closed', () => {
app.quit();
});

我刚刚开始研究此内容,因此对代码结构的质量可能很差表示歉意。谢谢您的帮助。

最佳答案

要在特定窗口上隐藏菜单,您必须在其上调用.setMenu(null)

function openAboutWindow()
{
if (about) {
about.focus();
return
}

about = new BrowserWindow({
height: 185,
resizable: false,
width: 270
});

about.setMenu(null); // here!
about.loadURL('file://' + __dirname + '/about.html').then(r => r);
about.on('closed', () => about = null);
}

(在某些版本的Electron中有 some issues带有此功能,我可以确认它在7.1.11上可以正常使用。)

关于node.js - 如何在Electron的第二个窗口中隐藏菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60027131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com