Як видалити цей рядок меню зі своїх електронних додатків:
Також там написано "Hello World" (це тому, що я завантажив електрон, побудований заздалегідь, і зникне, як тільки я упакую програму?). Я не кодував їх у html, тому не знаю, як це вивести! -
Як видалити цей рядок меню зі своїх електронних додатків:
Також там написано "Hello World" (це тому, що я завантажив електрон, побудований заздалегідь, і зникне, як тільки я упакую програму?). Я не кодував їх у html, тому не знаю, як це вивести! -
Відповіді:
Ви можете використовувати w.setMenu(null)
або встановлювати frame: false
(це також видаляє кнопки для закриття, мінімізації та розгортання параметрів) у вашому вікні. Див. SetMenu () або BrowserWindow () . Також перевірте цю тему
Електрон тепер має 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)
працює, як очікувалося (панель неможливо повернути, натиснувши alt
клавішу, як згадував @Artium).
Для Electron 7.1.1 ви можете використовувати це:
const {app, BrowserWindow, Menu} = require('electron')
Menu.setApplicationMenu(false)
Menu.setApplicationMenu(null)
працював в 7.1.2
інших рішеннях, не працював для мене!
Коли ви пакуєте свою програму, меню за замовчуванням більше не буде, якщо це викликає помилку під час розробки, ви можете зателефонувати setMenu(null)
у вікно браузера, як запропонував @TonyVincent.
Починаючи з 7.0.0, більшість з наведених рішень більше не працюють.
BrowserWindow.setMenu()
було замінено на Menu.setApplicationMenu()
, що тепер змінює меню у всіх вікнах. setMenu()
, removeMenu()
більше не робити нічого, про що, до речі, все ще згадується в документах.
setAutoHideMenuBar()
все ще працює, але може завадити, якщо ви планували використовувати Alt як модифікатор гарячих клавіш. Як тільки меню видно, вам потрібно клацнути подалі від вікна (вільний фокус), щоб знову приховати меню.
Якщо у вашій програмі більше одного вікна, ви не можете встановлювати / видаляти меню окремо для кожного вікна. Єдиний спосіб видалити меню - використовувати безрамковий підхід до вікон. Це трапляється тим, що я хочу в моїй поточній програмі, але не є гарним рішенням у всіх випадках.
Меню може бути прихованим або автоматично прихованим (наприклад, у Slack або VS Code - ви можете натиснути Alt, щоб показати / приховати меню).
---- win.setMenu (меню) - Встановлює меню як рядок меню вікна, якщо встановити його в нуль, панель меню буде видалено. ( Це повністю видалить меню )
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
doc: https://electronjs.org/docs/api/frameless-window
win.removeMenu()
Linux Windows Видаліть рядок меню вікна.
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
Додано win.removeMenu () для видалення меню програми замість використання win.setMenu (null)
Це додано з v5 згідно:
https://github.com/electron/electron/pull/16570
https://github.com/electron/electron/pull/16657
Для Electron 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. За замовчуванням значення false.
Ось фрагмент, щоб проілюструвати це:
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)
перед тим, як буде створено вікно
Перед цим рядком на main.js:
mainWindow = new BrowserWindow({width: 800, height: 900})
mainWindow.setMenu(null) //this will r menu bar
Відповідно до офіційної документації @ 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
зробив це за мене.