mac系统中,electron的菜单是和主窗口是分离的。所以对于主窗口来说,并没有太多视觉上的影响。而在win系统中,菜单和主窗体是连在一起,不可分割的。这个时候,这些菜单就显得有些多余。那么苏南大叔就再次diy一下,隐藏electron的菜单。

苏南大叔:electron程序,如何隐藏窗体顶部菜单? - eletron-no-menu
electron程序,如何隐藏窗体顶部菜单?(图8-1)

注意:默认情况下,如果你不做代码干涉的话,在开发的时候,菜单是显得比较多的。但是打包之后,就都会消失的,放心。

隐藏顶部菜单(wincentos

方案一,清空菜单(推荐)

注意:mac下的菜单是不适用的,隐藏不掉!win以及centos系列是可以隐藏的!

代码如下:

let mainWindow
//const {Menu} = require('electron')
const Menu = electron.Menu
function createWindow () {
  Menu.setApplicationMenu(null)
  mainWindow = new BrowserWindow({width: 800, height: 600})
  mainWindow.loadURL("https://electron.org.cn/")
  mainWindow.on('closed', function () {
    mainWindow = null
  })
}

关键代码见下图:

苏南大叔:electron程序,如何隐藏窗体顶部菜单? - menu_1
electron程序,如何隐藏窗体顶部菜单?(图8-2)

如果你在main的顶部定义了electron,那么你就可以使用下面的代码。

const electron = require('electron')
//...
const Menu = electron.Menu
function createWindow () {
  Menu.setApplicationMenu(null)
  //...
}

当然,你也可以从electron这个lib里面,再次导入Menu对象。见下面的代码。

const {Menu} = require('electron')
function createWindow () {
  Menu.setApplicationMenu(null)
  //...
}

效果都是一致的,这段代码只能放在主进程的ready之后使用,建议放在createWindow函数里面。渲染进程中,如果想修改menu的话,是不能这样使用的。请谨记。核心代码就一句话:

Menu.setApplicationMenu(null)

更多menu相关文档,请点击这里查看:

方案二,设置autoHideMenuBar:true(推荐)

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

这个对于非mac环境,还是效果非常不错的,推荐设置。

苏南大叔:electron程序,如何隐藏窗体顶部菜单? - electron-autohidemenubar
electron程序,如何隐藏窗体顶部菜单?(图8-3)

方案三,设置frame:false

mainWindow = new BrowserWindow({
  //...
  frame:false,
  //...
})

这个效果就过分了,连标题栏都没有了,不推荐。相关链接:

顶部隐藏效果对比

window下,删除菜单前效果图:

苏南大叔:electron程序,如何隐藏窗体顶部菜单? - menu_0
electron程序,如何隐藏窗体顶部菜单?(图8-4)

window下,删除菜单后效果图:

苏南大叔:electron程序,如何隐藏窗体顶部菜单? - menu_2
electron程序,如何隐藏窗体顶部菜单?(图8-5)

隐藏顶部菜单(mac)

基本代码

Menu.setApplicationMenu(Menu.buildFromTemplate([]))

顶部隐藏效果对比

然而,使用官方提供的删除顶部菜单的方法,只在windowslinux版本上有效。在mac系统下无效,mac系统下还是会存在顶部的菜单栏。但是mac版本下,本来主窗体和菜单也是分开的。所以整体来说,效果本来还是不错的。

苏南大叔:electron程序,如何隐藏窗体顶部菜单? - mac_menu
electron程序,如何隐藏窗体顶部菜单?(图8-6)

对于mac版本来说,默认情况下(就是没有对菜单进行设置的话),开发版的时候,菜单比较多(见上图)。打包release之后,就只有一个菜单了(见下图)。

苏南大叔:electron程序,如何隐藏窗体顶部菜单? - 000
electron程序,如何隐藏窗体顶部菜单?(图8-7)

下面的是使用苏南大叔想的,删除顶部菜单的代码效果:

苏南大叔:electron程序,如何隐藏窗体顶部菜单? - electron-top-menu-null
electron程序,如何隐藏窗体顶部菜单?(图8-8)

总结

苏南大叔分享了删除顶部菜单的方法,更多相关菜单设置的方式,苏南大叔将会在后续文章中讲述:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   electron

本站的忠实读者小伙伴,正在阅读下面这些文章: