Электрон изменить один пункт меню? - PullRequest
0 голосов
/ 09 января 2019

Итак, я строю софтар, используя электрон . Теперь я могу добавить меню в программном обеспечении из шаблона

var menu = Menu.buildFromTemplate([
  {
      label: 'Menu',
      submenu: [
          {label:'open'},
          {label:'save'},
          {label:'Exit'}
      ]
  }
])
Menu.setApplicationMenu(menu);

Но как мне изменить один пункт меню? Например, скажем, меню save по умолчанию отключено и активируется после нажатия open. Также скажите, что после нажатия open появится новое меню edit. Я могу создать полностью новый шаблон и просто заменить предыдущий шаблон новым. Но это плохой способ и не может быть практическим решением, когда я использую несколько меню с несколькими подменю. Так я могу изменить только один пункт меню по своему выбору?

1 Ответ

0 голосов
/ 09 января 2019

Вы можете получить пункты меню, используя:

import { Menu } from 'electron';

Menu.getApplicationMenu().items // all the items
Menu.getApplicationMenu().getMenuItemById('MENU_ITEM_ID') // get a single item by its id

После этого у вас есть несколько свойств в одном пункте меню:

- checked
- enabled
- visible
- label
- click

И вы можете настроить свое поведение так, как хотите.

Протестировано с электроном 3.0.5, до 27 Sep 2017 метода getMenuItemById не было, и вам пришлось перебирать все элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...