У меня есть приложение Electron с меню. Первый пункт меню является раскрывающимся, поэтому он имеет подменю. Два других пункта меню просто делают свое дело при нажатии. Моя проблема в том, что я просто не могу показать значок для пунктов меню, которые делают свое дело сразу. (Тот же значок отображается в точках подменю.) Как и в:
const {
BrowserWindow,
Menu, app
} = require('electron');
const path = require('path');
viewerWindow = null;
// define the menus
var menuoptions = [
{
label: "Select All", // {role: 'selectAll' } doesn't show the keyboard shortcuts
accelerator: 'CmdOrCtrl+A',
click: () => viewerWindow.webContents.selectAll()
},
{
label: "Copy", // {role: 'copy'} doesn't show the keyboard shortcuts
accelerator: 'CmdOrCtrl+C',
click: () => viewerWindow.webContents.copy()
},
{type:'separator'},
{
id: 'b',
label:'Back',
icon: 'C:/Users/bvanlogg/Documents/ElectronFiddle/point_left.png',
accelerator: 'Alt+Left',
click() {
nav.goBack()
}
},
{
id: 'f',
label:'Forward',
icon: 'C:/Users/bvanlogg/Documents/ElectronFiddle/point_right.png',
accelerator: 'Alt+Right',
click() {
nav.goForward()
}
},
{type:'separator'},
{role: 'toggledevtools'},
{role: 'quit'}
]
const contextmenu = Menu.buildFromTemplate(menuoptions)
const toolsmenu = Menu.buildFromTemplate([{
label: 'Tools',
submenu: menuoptions
},
{type:'separator'},
{type:'separator'},
{type:'separator'},
{type:'separator'},
{
id: 'bb',
icon: 'C:/Users/bvanlogg/Documents/ElectronFiddle/point_left.png',
label:'Back',
click() {
nav.goBack()
}
},
{
id: 'ff',
label:'Forward',
icon: 'C:/Users/bvanlogg/Documents/ElectronFiddle/point_right.png',
click() {
nav.goForward()
}
}
])
Menu.setApplicationMenu(toolsmenu);
// start the renderer
app.on('ready', () => {
viewerWindow = new BrowserWindow({
x: 336,
y: 280,
height: 601,
width: 1248,
show: false
})
viewerWindow.setMenu(toolsmenu);
viewerWindow.webContents.on('context-menu', e => {
contextmenu.popup()
})
docurl = path.resolve(`${__dirname}/index.html`);
viewerWindow.loadURL(docurl);
viewerWindow.on('ready-to-show', () => {
viewerWindow.show();
})
})
// Quit when all windows are closed.
app.on('window-all-closed', function ()
{
app.quit();
})
Значок просто не отображается. Если я вынимаю этикетку, ничего не отображается. Но значок отображается , когда я помещаю точно такой же код в подменю. Я создал снимок экрана , показывающий указанные значки рядом с параметрами в подменю, но не с параметрами в главном меню: