답변
창에서 사용 w.setMenu(null)
하거나 설정할 수 있습니다 frame: false
(이렇게하면 닫기, 최소화 및 최대화 옵션에 대한 버튼도 제거됨). setMenu () 또는 BrowserWindow ()를 참조하십시오 . 이 스레드 도 확인하십시오.
Electron은 이제 win.removeMenu()
( v5.0.0에 추가됨 ) win.setMenu(null)
.
Electron 7.1.x는 win.removeMenu()
작동하지 않는 버그가있는 것 같습니다 . 유일한 해결 방법은Menu.setApplicationMenu(null)
답변
이것을 사용하십시오 :
mainWindow = new BrowserWindow({width: 640, height: 360})
mainWindow.setMenuBarVisibility(false)
참조 : https://github.com/electron/electron/issues/1415
시도 mainWindow.setMenu(null)
했지만 작동하지 않았습니다.
답변
Electron 7.1.1의 경우 다음을 사용할 수 있습니다.
const {app, BrowserWindow, Menu} = require('electron')
Menu.setApplicationMenu(false)
답변
앱을 패키징 할 때 기본 메뉴가 더 이상 존재하지 않습니다. 개발 중에 문제가 발생하면 setMenu(null)
@TonyVincent가 제안한대로 브라우저 창에서 호출 할 수 있습니다 .
답변
7.0.0부터는 위의 대부분의 솔루션이 더 이상 작동하지 않습니다.
BrowserWindow.setMenu()
는로 대체되어 Menu.setApplicationMenu()
이제 모든 창의 메뉴를 변경합니다. setMenu()
, removeMenu()
더 이상 아무것도하지 않습니다. 그건 그렇고 여전히 문서에 언급되어 있습니다.
setAutoHideMenuBar()
여전히 작동하지만 Alt를 핫키 수정 자로 사용하려는 경우 불편할 수 있습니다. 메뉴가 표시되면 메뉴를 다시 숨기려면 창 밖을 클릭해야합니다 (약간 초점).
응용 프로그램에 창이 두 개 이상있는 경우 각 창에서 메뉴를 별도로 설정 / 제거 할 수 없습니다. 메뉴를 제거하는 유일한 방법은 프레임없는 창 접근 방식을 사용하는 것입니다. 그것은 내가 현재 응용 프로그램에서 원하는 것이지만 모든 경우에 좋은 솔루션은 아닙니다.
답변
메뉴를 숨길 수 있습니다 또는 자동 숨김 (처럼 여유 나 VS 코드 – 당신이 할 수 있습니다 보여 Alt 키를 눌러 / 숨기기 메뉴).
관련 방법 :
—- win.setMenu (menu) -메뉴를 창의 메뉴 모음으로 설정하고 null로 설정하면 메뉴 모음이 제거됩니다. ( 이렇게하면 메뉴가 완전히 제거됩니다. )
mainWindow.setMenu(null)
—- win.setAutoHideMenuBar (hide) -창 메뉴 바를 자동으로 숨길 지 여부를 설정합니다. 일단 설정 되면 메뉴 표시 줄 은
사용자 가 단일 Alt 키를 누를 때만
표시 됩니다 .
mainWindow.setAutoHideMenuBar(true)
출처 : https://github.com/Automattic/simplenote-electron/issues/293
다음과 같이 프레임없는 창을 만드는 방법도 있습니다.
(닫기 버튼 없음. 우리가 원하는 것이 될 수 있음 (더 나은 디자인))
const { BrowserWindow } = require('electron')
let win = new BrowserWindow({ width: 800, height: 600, frame: false })
win.show()
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
문서 : https://electronjs.org/docs/api/frameless-window
편집 : (신규)
win.removeMenu()
Linux Windows 창의 메뉴 표시 줄을 제거합니다.
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
win.setMenu (null)를 사용하는 대신 응용 프로그램 메뉴를 제거하기 위해 win.removeMenu ()를 추가했습니다.
다음과 같이 v5에서 추가되었습니다.
https://github.com/electron/electron/pull/16570
https://github.com/electron/electron/pull/16657
Electron v7 버그
전자 7.1.1에 사용하는 Menu.setApplicationMenu
대신win.removeMenu()
이 스레드에 따라 :
https://github.com/electron/electron/issues/16521
그리고 중요한 점은 BrowserWindow를 만들기 전에 호출해야 한다는 것입니다 ! 아니면 작동하지 않습니다!
const {app, BrowserWindow, Menu} = require('electron')
Menu.setApplicationMenu(null);
const browserWindow = new BrowserWindow({/*...*/});
UPDATE (BrowserWindow 생성시 autoHideMenuBar 설정)
@kcpr 코멘트로! 생성자에 속성과 많은 것을 설정할 수 있습니다.
현재 8.3 버전 인 전자의 최신 안정 버전에서 사용할 수 있습니다!
그러나 이전 버전에서도 v1, v2, v3, v4를 확인했습니다!
모든 버전에 있습니다!
이 링크에 따라
https://github.com/electron/electron/blob/1-3-x/docs/api/browser-window.md
그리고 v8.3의 경우
https://github.com/electron/electron/blob/v8.3.0/docs/api/browser-window.md#new-browserwindowoptions
문서 링크
https://www.electronjs.org/docs/api/browser-window#new-browserwindowoptions
옵션 문서에서 :
autoHideMenuBar Boolean (선택 사항)-Alt 키를 누르지 않는 한 메뉴 모음을 자동으로 숨 깁니다. 기본값은 거짓입니다.
다음은이를 설명하는 스 니펫입니다.
let browserWindow = new BrowserWindow({
width: 800,
height: 600,
autoHideMenuBar: true // <<< here
})
답변
@"electron": "^7.1.1" :
mainWindow = new browserWindow({ height: 500, width: 800});
//mainWindow.setAutoHideMenuBar(true);
mainWindow.autoHideMenuBar = true;
브라우저의 메뉴없이 예상대로 작동합니다.
