Aller au contenu principal

Menu

Classe : Menu​

Create application menus and context menus.

ProcessMain

The presentation of menus varies depending on the operating system:

  • Under Windows and Linux, menus are visually similar to Chromium.
  • Under macOS, these will be native menus.

[!TIP] See also: A detailed guide about how to implement menus in your application.

[!WARNING] Electron's built-in classes cannot be subclassed in user code. For more information, see the FAQ.

new Menu()​

Crée un nouveau menu.

Méthodes statiques​

La classe Menu dispose des méthodes statiques suivantes :

Définit menu comme menu d'application sur macOS. Sous Windows et Linux, menu sera défini comme menu principal de chaque fenêtre.

Sous Linux, la barre de menu utilise les couleurs du thème GTK lorsque GTK est disponible. Si GTK ne peut pas initialiser, il utilise les couleurs du menu clair ou foncé de Chromium, suivant nativeTheme.shouldUseDarkColors.

Sous Windows et Linux, vous pouvez également utiliser un & dans le nom de l'élément de niveau supérieur pour indiquer quelle lettre fournira un raccourci . Par exemple, l’utilisation de &File pour le menu Fichier entraînera la génération d’un raccourci Alt-F ouvrant le menu associé. Le caractère indiqué dans le label du bouton est alors souligné et le caractère & n’est pas affiché dans le bouton.

In order to escape the & character in an item name, add a preceding &. Par exemple, &&File afficherait &File dans le bouton.

Le passage de null comme paramètre supprimera le menu par défaut. Sous Windows et Linux, cela a pour effet supplémentaire de supprimer la barre de menu de la fenêtre.

[!NOTE] The default menu will be created automatically if the app does not set one. It contains standard items such as File, Edit, View, and Window.

Retourne Menu | null - Le menu de l’application si défini, ou null, si non défini.

[!NOTE] The returned Menu instance doesn't support dynamic addition or removal of menu items. Instance properties can still be dynamically modified.

History
Version(s)Changes
None
API ADDED
  • options Object | null
    • light Object (optional) - Colors used when menus are drawn with light colors.
      • background string (optional) - Background color of the hovered or keyboard-focused menu item, as a CSS color string (e.g. #0067c0).
      • foreground string (optional) - Text color of the hovered or keyboard-focused menu item, as a CSS color string.
    • dark Object (optional) - Colors used when menus are drawn with dark colors.
      • background string (optional) - Background color of the hovered or keyboard-focused menu item, as a CSS color string.
      • foreground string (optional) - Text color of the hovered or keyboard-focused menu item, as a CSS color string.

Sets the colors used to highlight the hovered or keyboard-focused item in every menu the app shows, including context menus and the menu bar's dropdowns. Light and dark colors are set separately, and any color left unset keeps the default for that mode. Each call replaces the colors set by any previous call. Passing null restores the defaults.

const { Menu } = require('electron')

Menu.setHighlightColors({
light: { background: '#0067c0', foreground: '#ffffff' },
dark: { background: '#4cc2ff', foreground: '#000000' }
})

Menus opened after the call use the new colors. The colors are not applied while Windows high contrast mode or forced colors are active, so the user's system colors take priority.

This method has no effect on macOS and Linux.

  • action string

Envoie action au premier répondant de l'application. Ceci est utilisé pour émuler les comportements du menu de macOS par défaut. Usually you would use the role property of a MenuItem.

See the macOS Cocoa Event Handling Guide for more information on macOS' native actions.

Retourne Menu

Generally, the template is an array of options for constructing a MenuItem. L'utilisation peut être référencée ci-dessus.

Vous pouvez également attacher d'autres champs à l'élément du template et ils deviendront des propriétés des éléments de menu construits.

Méthodes d’instance​

L'objet menu a les méthodes d'instance suivantes:

  • options Object (facultatif)
    • window BaseWindow (optional) - Default is the focused window.
    • frame WebFrameMain (optional) - Provide the relevant frame if you want certain OS-level features such as Writing Tools on macOS to function correctly. Typically, this should be params.frame from the context-menu event on a WebContents, or the focusedFrame property of a WebContents.
    • x number (facultatif) - C'est par défaut la position actuelle du curseur de la souris. Doit être déclaré si y est déclaré.
    • x number (facultatif) - C'est par défaut la position actuelle du curseur de la souris. Doit être déclaré si x est déclaré.
    • positioningItem number (facultatif) macOS - L'index de l'élément de menu à positionner sous le curseur de la souris aux coordonnées spécifiées. est. La valeur par défaut est -1.
    • sourceType string (facultatif) Windows Linux - Ceci doit correspondre au menuSourceType fournie par l'événement context-menu. Il n'est pas recommandé de définir cette valeur manuellement, fournissez seulement les valeurs que vous recevez d'autres APIs ou laissez à undefined. Peut être une de ces valeurs none, mouse, keyboard, touch, touchMenu, longPress, longTap, touchHandle, stylus, adjustSelection, adjustSelectionReset.
    • callback Fonction (facultatif) - Appelée lorsque le menu est fermé.

Fait apparaitre ce menu sous la forme d'un menu contextuel dans la BaseWindow.

[!TIP] For more details, see the Context Menu guide.

  • window BaseWindow (optional) - Default is the focused window.

Ferme le menu contextuel dans la window.

Ajoute le menuItem au menu.

  • id string

Returns MenuItem | null - the item with the specified id

Insère le menuItem à la position pos du menu.

Événements d’instance​

Les objets créés avec new Menu ou retournés par Menu.buildFromTemplate émettent les événements suivants :

[!NOTE] Some events are only available on specific operating systems and are labeled as such.

Événement : 'menu-will-show'​

Retourne :

  • event Event

Émis lorsque menu.popup() est appelé.

Événement : 'menu-will-close'​

Retourne :

  • event Event

Émis lorsqu'un popup est fermé manuellement ou avec menu.closePopup().

Propriétés d'instance​

Les objets menu dispossent également des propriétés suivantes :

A MenuItem[] array containing the menu's items.

Each Menu consists of multiple MenuItem instances and each MenuItem can nest a Menu into its submenu property.