source

전자 앱에서 메뉴 모음 제거

nicesource 2023. 5. 24. 22:13
반응형

전자 앱에서 메뉴 모음 제거

전자 앱에서 이 메뉴 모음을 제거하는 방법:

메뉴 모음

또한 "Hello World"라고 표시됩니다(이것은 전자 사전 빌드를 다운로드했기 때문이며 응용 프로그램을 패키지화하면 사라지기 때문입니까?html에 코딩을 안해서 어떻게 꺼내야할지 모르겠어요!

사용할 수 있습니다.w.setMenu(null)또는 집합frame: false창에서 닫기, 최소화 및 최대화 옵션 단추도 제거됩니다.setMenu() 또는 BrowserWindow()를 참조하십시오. 스레드도 확인합니다.


이제 Electron은 (v5.0.0에 추가됨)를 사용하는 대신 응용 프로그램 메뉴를 제거할 수 있습니다.win.setMenu(null).


7는 Electron 7.1.x가 것 .win.removeMenu()작동하지 않습니다. 방법은 유한해방은을 입니다.Menu.setApplicationMenu(null)그러나 이렇게 하면 전체 화면 전환 등과 같은 모든 메뉴 바로 가기가 비활성화됩니다.


새 에서는 에운버전의 Electron서다설정수있습다니할을을 설정할 수 .autoHideMenuBar: true브라우저 창을 만드는 동안 을 누르면 메뉴 모음이 다시 표시됩니다.

const mainWindow = new BrowserWindow({
  autoHideMenuBar: true,
})

사용:

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)

메뉴를 숨기거나 자동으로 숨길 수 있습니다(슬랙 또는 VS 코드에서처럼 Alt를 눌러 메뉴를 표시/숨길있습니다).

관련 방법:

win.setMenu(메뉴) - 메뉴를 창의 메뉴 모음으로 설정합니다. null로 설정하면 메뉴 모음이 제거됩니다. (메뉴가 완전히 제거됩니다.)

mainWindow.setMenu(null)


win.setAutoHideMenuBar(숨김) - 창 메뉴 표시줄이 자동으로 자신을 숨길지 여부를 설정합니다.설정이 완료되면 사용자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

전자 v7 버그

7 Electron 7.1.1을 합니다.Menu.setApplicationMenuwin.removeMenu()

스레드에 : " 스드에따라레":
https://github.com/electron/electron/issues/://github.com/electron/electron/issues/16521

그리고 중요한 점은 브라우저 창을 만들기 전에 호출해야 한다는 것입니다!안 그러면 안 됩니다!

const {app, BrowserWindow, Menu} = require('electron')

Menu.setApplicationMenu(null);

const browserWindow = new BrowserWindow({/*...*/});

UPDATE(브라우저 창 구성에서 autoHide 메뉴바 설정)

@kcpr 댓글처럼!우리는 건설자에게 많은 재산과 많은 것을 설정할 수 있습니다.

그것은 현재 8.3인 최신 안정된 버전의 전자에서 사용할 수 있습니다!
하지만 이전 버전에서도 v1, v2, v3, v4를 확인했습니다!
모든 버전이 있습니다!

링크에
https://github.com/electron/electron/blob/1-3-x/docs/api/.mdhttps ://github.com/electron/electron/blob/1-3-x/docs/api/browser-window.md

3v8.3의 에는 다음과 같이 .
https://github.com/electron/electron/blob/v8.3.0/docs/api/browser-window.md#://github.com/electron/electron/blob/v8.3.0/docs/api/browser-window.md#new-browserwindowoptions

:
https://www.electronjs.org/docs/api/browser-window#://www.electronjs.org/docs/api/browser-window#new-browserwindowoptions

옵션에 대한 문서:

autoHideMenuBar Boolean(옵션) - Alt 키를 누르지 않는 한 메뉴 모음을 자동으로 숨깁니다.기본값은 false입니다.

다음은 이를 설명하기 위한 스니펫입니다.


let browserWindow = new BrowserWindow({
    width: 800,
    height: 600,
    autoHideMenuBar: true // <<< here
})

앱을 패키지화할 때 기본 메뉴가 더 이상 없습니다. 개발 중에 버그가 발생하면 전화를 걸 수 있습니다.setMenu(null)@TonyVincent가 제안한 대로 브라우저 창에서.

을 기준으로 위 이 더 작동하지 .7.0.0은 더 이상 작동하지 않습니다. BrowserWindow.setMenu() 로대었니다로 대체되었습니다.Menu.setApplicationMenu()이제 모든 창에서 메뉴가 변경됩니다. setMenu(),removeMenu()더 이상 아무것도 하지 않습니다. 그나저나 아직도 문서에 언급되어 있습니다.

setAutoHideMenuBar()여전히 작동하지만 Alt를 단축키 수정자로 사용할 계획이라면 성가신 일이 될 수 있습니다.메뉴가 표시되면 창 밖을 클릭하여(포커스를 느슨하게 함) 메뉴를 다시 숨겨야 합니다.

프로그램에 둘 이상의 창이 있는 경우 각 창에서 메뉴를 개별적으로 설정/제거할 수 없습니다.메뉴를 제거하는 유일한 방법은 프레임 없는 창 방식을 사용하는 것입니다.이것이 현재 애플리케이션에서 원하는 것이지만 모든 경우에 좋은 솔루션은 아닙니다.

@"electron": "^7.1.1" : 

mainWindow = new browserWindow({ height: 500, width: 800});
//mainWindow.setAutoHideMenuBar(true);
mainWindow.autoHideMenuBar = true;

브라우저에서 메뉴 없이 예상대로 작동하고 있습니다.

이러한 솔루션에는 버그가 있습니다.아래의 솔루션을 사용할 경우 창 닫기가 지연됩니다.

Menu.setApplicationMenu(null),
&&
const updateErrorWindow = new BrowserWindow({autoHideMenuBar: true});

저는 아래에 있는 용액을 사용했습니다.지금은 이게 더 낫습니다.

const window= new BrowserWindow({...});
window.setMenuBarVisibility(false);

브라우저를 만드는 동안 autoHideMenuBar를 true로 설정Windows

mainWindow = new BrowserWindow({
    autoHideMenuBar: true,
    width: 1200,
    height: 800
})

전자 12.0.6:

    let mainWindow = new BrowserWindow({
        autoHideMenuBar: true
    });

2020 업데이트, 나에게 효과가 있었던 유일한 bl**dy:

Menu.setApplicationMenu(new Menu());

문제에 대한 답변에 따라 다음으로 전화해야 합니다.Menu.setApplicationMenu(null) 창이 생성되기 전에

setMenu(null);가장 좋은 대답은autohidemenu 프로그램 시 됩니다.


    function createWindow(){
        const win = new BrowserWindow({
            width: 1500,
            height: 800,
            webPreferences:{
                nodeIntergration: true
            }
        });
        win.setMenu(null);
    win.loadFile("index.html");
    }
    app.whenReady().then(createWindow);

main.js에서 이 행 앞:

mainWindow = new BrowserWindow({width: 800, height: 900})

mainWindow.setMenu(null) //this will r menu bar

대부분의 답변은 최신 버전에서는 유효하지 않습니다. 9.0 이버서는Menu.setApplicationMenu(null);작동해야 합니다. 그렇고, 그저나나.Menu전자 패키지에서 내보냄: const {Menu} = require('electron');

공식 문서 @ 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)

라 할지라도autoHideMenuBar: true을 " 메모음전수있다니습할환을뉴"로 할 수 .Alt키.키.키.키.

완전히 숨기려면 다음을 사용합니다.mainWindow.setMenu(null)

언급URL : https://stackoverflow.com/questions/39091964/remove-menubar-from-electron-app

반응형