Bagaimana cara menghapus bilah menu ini dari aplikasi elektron saya:
Juga dikatakan "Hello World" (apakah ini karena saya mengunduh electron yang dibuat sebelumnya, dan akan hilang begitu saya mengemas aplikasi?). Saya tidak mengkodekannya ke dalam html, jadi saya tidak tahu bagaimana cara mengeluarkannya! -
frame: false
melakukannya untuk saya.removeMenu()
adalah Linux & Windows sajasetMenu
danremoveMenu
tidak berfungsi lagi tautanGunakan ini:
Referensi: https://github.com/electron/electron/issues/1415
Saya mencoba
mainWindow.setMenu(null)
, tetapi tidak berhasil.sumber
mainWindow.setMenu(null)
dengan electron 5.0.2 dan tidak berhasil juga. Tidak yakin mengapa saya melihat saran untuk menggunakannya di mana-mana, dan mengembara jika saya satu-satunya yang melakukan sesuatu yang tidak benar. Saran Anda tentang penggunaansetMenuBarVisibility
, meskipun menghilangkan visibilitas bilah menu, tidak menghapusnya sepenuhnya. Itu bisa dibawa kembali dengan menekanAlt
tombol..setMenu(null)
atau tidak.removeMenu()
berhasil untuk saya..setMenuBarVisibility(false)
menghapus bilah menu danAlt
kuncinya hanya berfungsi jika.setAutoHideMenuBar(true)
dijalankan.setMenu(null)
tidak berfungsi, tetapisetMenuBarVisibility(false)
berfungsi seperti yang diharapkan (bilah tidak dapat dikembalikan dengan menekanalt
tombol seperti yang disebutkan @Artium).Untuk Electron 7.1.1, Anda dapat menggunakan ini:
sumber
Menu.setApplicationMenu(null)
berfungsi di7.1.2
Solusi lain tidak berhasil untuk saya!Ketika Anda mengemas aplikasi Anda, menu default tidak akan ada lagi, jika ini mengganggu Anda selama pengembangan, maka Anda dapat memanggil
setMenu(null)
di jendela browser seperti yang disarankan oleh @TonyVincent.sumber
Mulai 7.0.0, sebagian besar solusi di atas tidak lagi berfungsi.
BrowserWindow.setMenu()
telah diganti olehMenu.setApplicationMenu()
, yang sekarang mengubah menu di semua jendela.setMenu()
,removeMenu()
tidak lagi melakukan apa-apa, Yang omong-omong masih disebutkan di dokumen.setAutoHideMenuBar()
masih berfungsi, tetapi bisa menjadi gangguan jika Anda berencana menggunakan Alt sebagai pengubah hotkey. Setelah menu terlihat, Anda harus mengklik menjauh dari jendela (fokus longgar) untuk menyembunyikan menu lagi.Jika aplikasi Anda memiliki lebih dari satu jendela, Anda tidak dapat mengatur / menghapus menu secara terpisah di setiap jendela. Satu-satunya cara untuk menghapus menu adalah dengan menggunakan pendekatan jendela tanpa bingkai. Kebetulan itulah yang saya inginkan dalam aplikasi saya saat ini, tetapi bukan solusi yang baik dalam semua kasus.
sumber
Menu dapat disembunyikan atau disembunyikan otomatis (seperti di Slack atau VS Code - Anda dapat menekan Alt untuk menampilkan / menyembunyikan menu).
Metode yang relevan:
---- win.setMenu (menu) - Mengatur menu sebagai bilah menu jendela, mengaturnya ke nol akan menghapus bilah menu. ( Ini akan menghapus menu sepenuhnya )
---- win.setAutoHideMenuBar (sembunyikan) - Mengatur apakah bilah menu jendela harus menyembunyikan dirinya secara otomatis. Setelah ditetapkan menu bar hanya akan
menunjukkan bila pengguna menekan single tombol Alt .
Sumber: https://github.com/Automattic/simplenote-electron/issues/293
Ada juga metode untuk membuat jendela tanpa bingkai seperti yang ditunjukkan di bawah ini:
(tidak ada tombol tutup tidak apa-apa. Bisa apa yang kita inginkan (desain lebih baik))
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
doc: https://electronjs.org/docs/api/frameless-window
Edit: (baru)
https://electronjs.org/docs/api/browser-window#winremovemenu-linux-windows
Menambahkan win.removeMenu () untuk menghapus menu aplikasi daripada menggunakan win.setMenu (null)
Itu ditambahkan dari v5 sesuai:
https://github.com/electron/electron/pull/16570
https://github.com/electron/electron/pull/16657
Bug Electron v7
Untuk Electron 7.1.1 menggunakan
Menu.setApplicationMenu
bukannyawin.removeMenu()
sesuai utas ini:
https://github.com/electron/electron/issues/16521
Dan catatan besarnya adalah: Anda harus memanggilnya sebelum membuat BrowserWindow ! Atau itu tidak akan berhasil!
UPDATE (Mengatur autoHideMenuBar pada konstruksi BrowserWindow)
Seperti oleh komentar @kcpr! Kita dapat mengatur properti dan banyak lagi di konstruktor
Itu tersedia pada versi stabil elektron terbaru sekarang yaitu 8.3!
Tetapi juga di versi lama saya memeriksa v1, v2, v3, v4!
Itu ada di semua versi!
Sesuai tautan ini
https://github.com/electron/electron/blob/1-3-x/docs/api/browser-window.md
Dan untuk v8.3
https://github.com/electron/electron/blob/v8.3.0/docs/api/browser-window.md#new-browserwindowoptions
Tautan dokumen
https://www.electronjs.org/docs/api/browser-window#new-browserwindowoptions
Dari dokumen untuk opsi:
Berikut cuplikan untuk menggambarkannya:
sumber
BrowserWindow
konstruktor seperti:new BrowserWindow({autoHideMenuBar: true})
. Dan, omong-omong, terima kasih atas jawaban ini. Tampaknya bagi saya mungkin yang paling lengkap (dengan asumsi bahwa metode tersebut masih ada dan tidak usang).Bekerja seperti yang diharapkan tanpa menu di browser.
sumber
Sebelum baris ini di main.js:
sumber
Mengikuti jawaban dari masalah ini , Anda harus menelepon
Menu.setApplicationMenu(null)
sebelum jendela dibuatsumber
Menurut dokumentasi resmi @ https://github.com/electron/electron/blob/v8.0.0-beta.1/docs/api/menu.md cara yang tepat untuk melakukan ini sekarang sejak 7.1.2 dan saya telah menguji itu di 8.0 juga untuk:
sumber
Solusi ini memiliki bug. Saat menggunakan solusi di bawah ini, jendela mengalami penundaan saat penutupan.
Saya menggunakan solusi di bawah ini. Ini lebih baik untuk saat ini.
sumber