gpt4 book ai didi

Electron 菜单加速器不工作

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

我正在学习有关 Pluralsight 的 Electron 基础类(class)(Trent,2016 年)。我无法让加速器处理我的“退出”菜单项。下面是我的整个 main.js 文件。根据我所知,菜单已成功创建(下图),直接单击“退出”菜单项确实会关闭应用程序,但 Alt+W 组合键不会。我在 Windows 10 上。我错过了什么?

menu screenshot

const electron = require('electron');

const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
const Menu = electron.Menu;

app.on('ready', _ => {
new BrowserWindow();

const template = [
{
label: "File",
submenu: [{
label: 'About',
click: _ => {
console.log('clicked');
}
},
{
type: 'separator'
},
{
label: 'Quit',
accelerator: 'Alt+W',
click: _ => {
app.quit();
}
}]
}];

const menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);
});

最佳答案

accelerator不再支持字符串。文档更新于 v1.4.5阐明如何使用 globalShortcut 定义快捷方式.

Accelerator Documentation: Shortcuts are registered with the globalShortcut module using the register method, i.e.

   const {app, globalShortcut} = require('electron')

app.on('ready', () => {
// Register a 'CommandOrControl+Y' shortcut listener.
globalShortcut.register('CommandOrControl+Y', () => {
// Do stuff when Y and either Command/Control is pressed.
})
})


所以把你的代码改成这个
const electron = require('electron');

const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
const Menu = electron.Menu;
const globalShortcut = electron.globalShortcut;

app.on('ready', _ => {
new BrowserWindow();

// Declare shortcuts
globalShortcut.register('Alt+W', () => app.quit());

const template = [
{
label: "File",
submenu: [{
label: 'About',
click: _ => {
console.log('clicked');
}
},
{
type: 'separator'
},
{
label: 'Quit',
click: _ => {
app.quit();
}
}]
}];

const menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);
});

关于 Electron 菜单加速器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40776653/

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