我是Electron的新手,在查找应用程序菜单的工作示例时遇到了问题。
尝试将Quick Start应用与电子文档的Class: Menu页面中的示例结合使用时,似乎没有任何事情发生变化 - 查找label
值无效。
谷歌搜索引发的问题多于解决的问题 - 例如,我是否需要将应用程序打包以在应用程序菜单中进行更改,或者是否需要将main.js
和package.json
移至{{ 1}}(如果是的话,我需要打包它来运行它吗?)
有没有更好的方法来获得Electron ......?
当我在OSX上将我的应用添加到我的应用程序时,应用程序菜单有一个条目 - $projectRoot/resources/app
,有一个选项,Electron
:
Quit
答案 0 :(得分:10)
您无需打包应用程序即可更改应用程序菜单。发出Menu.setApplicationMenu()
事件后,请检查您是否正在呼叫ready
,例如
app.on('ready', () => {
const menu = Menu.buildFromTemplate(template)
Menu.setApplicationMenu(menu)
})
答案 1 :(得分:0)
很难看出prb是什么,因为你没有提供任何代码。但是,这里应该如何工作:在main.js中执行此操作:
var MenuItem = require('menu-item');
然后创建一个函数createMenu:
global.yourApp = {
init() {
whatsApp.createMenu();
config.init();
},
createMenu() {
yourApp.menu =
AppMenu.buildFromTemplate(require('./menu'));
AppMenu.setApplicationMenu(yourApp.menu);
}
}
./ menu您将拥有看起来像这样的menu.js文件:
(function(scope) {
"use strict";
var template = [
{
label: 'Edit',
submenu: [
{
label: 'Undo',
accelerator: 'CmdOrCtrl+Z',
role: 'undo'
}
......
]
}]
})(this);
答案 2 :(得分:-1)
从我有限的经历: "我是否需要打包我的应用程序才能在应用程序菜单中进行更改"?
是。这可能是你的根本原因。
默认电子cmd包含" chrome"应用程序外壳程序,并不使用任何包含的菜单更改代码。您只需获得默认的菜单结构。