Comment supprimer cette barre de menus de mes applications électroniques:
Il dit aussi "Hello World" (est-ce parce que j'ai téléchargé électron pré-construit, et disparaîtra une fois que j'emballerai l'application?). Je ne les ai pas codés dans le html, donc je ne sais pas comment les sortir! -
frame: false
l'a fait pour moi.removeMenu()
est Linux et Windows uniquementsetMenu
etremoveMenu
ne fonctionne plus lienUtilisez ceci:
Référence: https://github.com/electron/electron/issues/1415
J'ai essayé
mainWindow.setMenu(null)
, mais cela n'a pas fonctionné.la source
mainWindow.setMenu(null)
avec l'électron 5.0.2 et cela n'a pas fonctionné pour moi aussi. Je ne sais pas pourquoi je vois conseiller de l'utiliser partout, et je me promenais si je suis le seul à faire quelque chose de mal. Votre conseil d'utilisationsetMenuBarVisibility
, bien que supprime la visibilité de la barre de menus, ne la supprime pas complètement. Il peut être ramené en appuyant sur laAlt
touche..setMenu(null)
ou a.removeMenu()
fonctionné pour moi..setMenuBarVisibility(false)
supprime la barre de menus et laAlt
touche ne fonctionne que si elle.setAutoHideMenuBar(true)
est exécutée.setMenu(null)
n'a pas fonctionné, maissetMenuBarVisibility(false)
fonctionne comme prévu (la barre ne peut pas être ramenée en appuyant sur laalt
touche comme @Artium mentionné).Pour Electron 7.1.1, vous pouvez utiliser ceci:
la source
Menu.setApplicationMenu(null)
travaillé dans7.1.2
D'autres solutions ne fonctionnaient pas pour moi!Lorsque vous empaquetez votre application, le menu par défaut ne sera plus là, si cela vous dérange pendant le développement, vous pouvez appeler
setMenu(null)
la fenêtre du navigateur comme suggéré par @TonyVincent.la source
Depuis la version 7.0.0, la plupart des solutions ci-dessus ne fonctionnent plus.
BrowserWindow.setMenu()
a été remplacé parMenu.setApplicationMenu()
, qui modifie désormais le menu de toutes les fenêtres.setMenu()
,removeMenu()
ne faites plus rien, qui sont d'ailleurs toujours mentionnés dans la documentation.setAutoHideMenuBar()
fonctionne toujours, mais pourrait être une nuisance si vous prévoyez d'utiliser Alt comme modificateur de raccourci clavier. Une fois le menu visible, vous devez cliquer en dehors de la fenêtre (mise au point lâche) pour masquer à nouveau le menu.Si votre application comporte plusieurs fenêtres, vous ne pouvez pas définir / supprimer des menus séparément dans chaque fenêtre. La seule façon de supprimer un menu est d'utiliser l'approche de la fenêtre sans cadre. C'est ce que je souhaite dans mon application actuelle, mais ce n'est pas une bonne solution dans tous les cas.
la source
Le menu peut être masqué ou masqué automatiquement (comme dans Slack ou VS Code - vous pouvez appuyer sur Alt pour afficher / masquer le menu).
Méthodes pertinentes:
---- win.setMenu (menu) - Définit le menu comme la barre de menus de la fenêtre, le définir sur null supprimera la barre de menus. ( Cela supprimera complètement le menu )
---- win.setAutoHideMenuBar (hide) - Définit si la barre de menus de la fenêtre doit se cacher automatiquement. Une fois définie, la barre de menus ne
s'affiche que lorsque les utilisateurs appuient sur la touche Alt unique .
Source: https://github.com/Automattic/simplenote-electron/issues/293
Il existe également la méthode pour créer une fenêtre sans cadre comme indiqué ci-dessous:
(pas de bouton de fermeture, rien. Peut être ce que nous voulons (meilleur design))
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
doc: https://electronjs.org/docs/api/frameless-window
Edit: (nouveau)
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
Ajout de win.removeMenu () pour supprimer les menus de l'application au lieu d'utiliser win.setMenu (null)
Cela est ajouté à partir de la v5 selon:
https://github.com/electron/electron/pull/16570
https://github.com/electron/electron/pull/16657
Bogue Electron v7
Pour Electron 7.1.1, utilisez
Menu.setApplicationMenu
au lieu dewin.removeMenu()
selon ce fil:
https://github.com/electron/electron/issues/16521
Et la grande note est: vous devez l'appeler avant de créer le BrowserWindow ! Ou cela ne fonctionnera pas!
UPDATE (Définition de autoHideMenuBar sur la construction BrowserWindow)
Comme par @kcpr comment! Nous pouvons définir la propriété et beaucoup sur le constructeur
C'est disponible sur la dernière version stable d'électron maintenant qui est 8.3!
Mais aussi dans les anciennes versions, j'ai vérifié les v1, v2, v3, v4!
C'est là dans toutes les versions!
Selon ce lien
https://github.com/electron/electron/blob/1-3-x/docs/api/browser-window.md
Et pour la v8.3
https://github.com/electron/electron/blob/v8.3.0/docs/api/browser-window.md#new-browserwindowoptions
Le lien doc
https://www.electronjs.org/docs/api/browser-window#new-browserwindowoptions
De la doc pour l'option:
Voici un extrait pour l'illustrer:
la source
BrowserWindow
constructeur comme ceci:new BrowserWindow({autoHideMenuBar: true})
. Et, au fait, merci pour cette réponse. Elle me semble probablement la plus complète (en supposant que les méthodes existent toujours et ne sont pas obsolètes).Fonctionne comme prévu sans menu dans le navigateur.
la source
Suite à la réponse de ce problème , vous devez appeler
Menu.setApplicationMenu(null)
avant la création de la fenêtrela source
Avant cette ligne sur main.js:
la source
Selon la documentation officielle @ https://github.com/electron/electron/blob/v8.0.0-beta.1/docs/api/menu.md, la bonne façon de le faire maintenant depuis 7.1.2 et j'ai testé il est également sur 8.0:
la source
Ces solutions ont un bug. Lorsque vous utilisez des solutions ci-dessous, les fenêtres ont un retard à la fermeture.
J'ai utilisé la solution ci-dessous. C'est mieux pour le moment.
la source