Como faço para remover esta barra de menu de meus aplicativos de elétrons:
Também diz "Hello World" (isso é porque eu baixei o elétron pré-compilado e irei embora assim que eu empacotar o aplicativo?). Não os codifiquei no html, então não sei como retirá-los! -
frame: false
fez isso por mim.removeMenu()
é apenas Linux e WindowssetMenu
eremoveMenu
não funciona mais linkUsa isto:
Referência: https://github.com/electron/electron/issues/1415
Eu tentei
mainWindow.setMenu(null)
, mas não funcionou.fonte
mainWindow.setMenu(null)
com o elétron 5.0.2 e não funcionou para mim também. Não sei por que vejo conselho para usá-lo em todos os lugares, e estava vagando se sou o único que está fazendo algo incorreto. Seu conselho de usarsetMenuBarVisibility
, embora remova a visibilidade da barra de menu, não a remove completamente. Ele pode ser trazido de volta pressionando aAlt
tecla..setMenu(null)
ou.removeMenu()
funcionou para mim..setMenuBarVisibility(false)
remove a barra de menu e aAlt
tecla só funciona se.setAutoHideMenuBar(true)
for executada.setMenu(null)
não funcionou, massetMenuBarVisibility(false)
funciona como esperado (a barra não pode ser trazida de volta pressionando aalt
tecla como @Artium mencionou).Para o Electron 7.1.1, você pode usar este:
fonte
Menu.setApplicationMenu(null)
funcionou em7.1.2
Outras soluções não funcionou para mim!Quando você empacota seu aplicativo, o menu padrão não estará mais lá, se isso estiver incomodando você durante o desenvolvimento, você pode chamar
setMenu(null)
a janela do navegador como sugerido por @TonyVincent.fonte
A partir de 7.0.0, a maioria das soluções acima não funciona mais.
BrowserWindow.setMenu()
foi substituído porMenu.setApplicationMenu()
, que agora altera o menu em todas as janelas.setMenu()
,removeMenu()
não fazem mais nada, que por sinal ainda são mencionados nos documentos.setAutoHideMenuBar()
ainda funciona, mas pode ser um incômodo se você planeja usar Alt como um modificador de tecla de atalho. Assim que o menu estiver visível, você deve clicar fora da janela (foco solto) para ocultar o menu novamente.Se o seu aplicativo tiver mais de uma janela, você não poderá definir / remover menus separadamente em cada janela. A única maneira de remover um menu é usar a abordagem de janela sem moldura. Isso é o que desejo em meu aplicativo atual, mas não é uma boa solução em todos os casos.
fonte
O menu pode ser oculto ou oculto automaticamente (como no Slack ou VS Code - você pode pressionar Alt para mostrar / ocultar o menu).
Métodos relevantes:
---- win.setMenu (menu) - Define o menu como a barra de menus da janela, definindo-o como nulo removerá a barra de menus. ( Isso removerá o menu completamente )
---- win.setAutoHideMenuBar (ocultar) - Define se a barra de menus da janela deve se ocultar automaticamente. Uma vez definida, a barra de menus só será
exibida quando os usuários pressionarem a única tecla Alt .
Fonte: https://github.com/Automattic/simplenote-electron/issues/293
Também existe o método para fazer uma janela sem moldura, conforme mostrado abaixo:
(sem botão de fechar, nada. Pode ser o que queremos (design melhor))
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
doc: https://electronjs.org/docs/api/frameless-window
Editar: (novo)
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
Adicionado win.removeMenu () para remover menus de aplicativos em vez de usar win.setMenu (null)
Isso é adicionado a partir da v5 conforme:
https://github.com/electron/electron/pull/16570
https://github.com/electron/electron/pull/16657
Bug Electron v7
Para Electron 7.1.1, use em
Menu.setApplicationMenu
vez dewin.removeMenu()
de acordo com este tópico:
https://github.com/electron/electron/issues/16521
E a grande observação é: você precisa chamá-lo antes de criar o BrowserWindow ! Ou não vai funcionar!
UPDATE (Configurando autoHideMenuBar na construção do BrowserWindow)
Como pelo comentário de @kcpr! Podemos definir a propriedade e muitas no construtor
Isso está disponível na última versão estável do elétron agora que é 8.3!
Mas também nas versões antigas eu verifiquei se há v1, v2, v3, v4!
Está disponível em todas as versões!
De acordo com este link
https://github.com/electron/electron/blob/1-3-x/docs/api/browser-window.md
E para a v8.3
https://github.com/electron/electron/blob/v8.3.0/docs/api/browser-window.md#new-browserwindowoptions
O link do documento
https://www.electronjs.org/docs/api/browser-window#new-browserwindowoptions
Do doc para a opção:
Aqui está um snippet para ilustrar isso:
fonte
BrowserWindow
construtor assim:new BrowserWindow({autoHideMenuBar: true})
. E, a propósito, obrigado por esta resposta. Parece-me provavelmente o mais completo (assumindo que os métodos ainda existem e não estão obsoletos).Funcionando como esperado sem menu no navegador.
fonte
Seguindo a resposta deste problema , você deve ligar
Menu.setApplicationMenu(null)
antes que a janela seja criadafonte
Antes desta linha em main.js:
fonte
De acordo com a documentação oficial @ https://github.com/electron/electron/blob/v8.0.0-beta.1/docs/api/menu.md a maneira correta de fazer isso agora desde 7.1.2 e eu testei no 8.0 também é para:
fonte
Essas soluções têm bug. Ao usar as soluções abaixo, o Windows demora para fechar.
Usei a solução abaixo. Isso é melhor por enquanto.
fonte