전자 앱에서이 메뉴 바를 제거하는 방법 :
또한 "Hello World"라고 표시되어 있습니다 (이는 사전 빌드 된 전자를 다운로드했기 때문에 응용 프로그램을 패키징하면 사라질까 요?). 나는 이것을 html로 코딩하지 않았기 때문에 그것을 얻는 방법을 모릅니다!-
답변:
창에서 사용 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)
removeMenu()
는 Linux 및 Windows 전용입니다.
이것을 사용하십시오 :
mainWindow = new BrowserWindow({width: 640, height: 360})
mainWindow.setMenuBarVisibility(false)
참조 : https://github.com/electron/electron/issues/1415
시도 mainWindow.setMenu(null)
했지만 작동하지 않았습니다.
mainWindow.setMenu(null)
전자 5.0.2로 시도했지만 저에게도 작동하지 않았습니다. 왜 어디서나 그것을 사용하라는 조언을 보았는지 모르겠고, 내가 뭔가 잘못하고있는 유일한 사람이라면 방황하고있었습니다. 사용에 대한 귀하의 조언은 setMenuBarVisibility
메뉴 모음의 가시성을 제거하지만 완전히 제거하지는 않습니다. Alt
키 를 누르면 되돌릴 수 있습니다 .
.setMenu(null)
나 에게도 효과가 없었 .removeMenu()
습니다. .setMenuBarVisibility(false)
메뉴 표시 줄을 제거하고 Alt
키 .setAutoHideMenuBar(true)
가 실행되는 경우에만 작동 합니다.
setMenu(null)
작동하지 않았지만 setMenuBarVisibility(false)
예상대로 작동합니다 ( @Artium이 언급 한대로 키를 눌러 막대 를 다시 가져올 수 없음alt
).
Electron 7.1.1의 경우 다음을 사용할 수 있습니다.
const {app, BrowserWindow, Menu} = require('electron')
Menu.setApplicationMenu(false)
Menu.setApplicationMenu(null)
작업 함 7.1.2
다른 솔루션이 나를 위해 작동하지 않았습니다!
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
전자 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({/*...*/});
@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
})
BrowserWindow
다음과 같이 생성자 에서 자동으로 숨겨져 야한다고 정의 할 수 있습니다 new BrowserWindow({autoHideMenuBar: true})
. 그런데이 답변에 감사드립니다. 나에게 아마도 가장 완전한 것 같습니다 (메소드가 여전히 존재하고 더 이상 사용되지 않는다고 가정).
@"electron": "^7.1.1" :
mainWindow = new browserWindow({ height: 500, width: 800});
//mainWindow.setAutoHideMenuBar(true);
mainWindow.autoHideMenuBar = true;
브라우저의 메뉴없이 예상대로 작동합니다.
이 문제 의 답변에 따라 창이 생성 Menu.setApplicationMenu(null)
되기 전에 전화해야합니다.
공식 문서 @ https://github.com/electron/electron/blob/v8.0.0-beta.1/docs/api/menu.md 에 따르면 7.1.2부터 지금이 작업을 수행하는 적절한 방법을 테스트했습니다. 8.0에서도 마찬가지입니다.
const { app, Menu } = require('electron')
Menu.setApplicationMenu(null)
이러한 솔루션에는 버그가 있습니다. 아래의 솔루션을 사용하면 창을 닫을 때 지연이 발생합니다.
Menu.setApplicationMenu(null),
&&
const updateErrorWindow = new BrowserWindow({autoHideMenuBar: true});
아래에서 솔루션을 사용했습니다. 지금은 더 좋습니다.
const window= new BrowserWindow({...});
window.setMenuBarVisibility(false);
frame: false
나를 위해 해냈어.