Электрон изменить один пункт меню?

1

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

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

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

Теги:
electron

1 ответ

2
Лучший ответ

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

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 отсутствовал, и вам пришлось перебирать все элементы.

  • 0
    Хорошо, нашел в документах Electronjs.org/docs/api/menu
  • 0
    Можете ли вы показать мне, как вставить новый пункт подменю?
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню