electron程序,如何隐藏窗体顶部菜单?
发布于 作者:苏南大叔 来源:程序如此灵动~在mac
系统中,electron
的菜单是和主窗口是分离的。所以对于主窗口来说,并没有太多视觉上的影响。而在win
系统中,菜单和主窗体是连在一起,不可分割的。这个时候,这些菜单就显得有些多余。那么苏南大叔就再次diy
一下,隐藏electron
的菜单。
注意:默认情况下,如果你不做代码干涉的话,在开发的时候,菜单是显得比较多余。但是打包之后,这个菜单就会消失的,放心。前三个方案适合win
和centos
,最后一个方案四适合mac
系统。
方案一,清空菜单(win
和centos
)(推荐)
注意: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("http://electron.org.cn/")
mainWindow.on('closed', function () {
mainWindow = null
})
}
关键代码见下图:
如果你在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
(win
和centos
)(推荐)
mainWindow = new BrowserWindow({
//...
autoHideMenuBar: true,
//...
})
这个对于非mac
环境,还是效果非常不错的,推荐设置。
方案三,设置frame:false
(win
和centos
)
mainWindow = new BrowserWindow({
//...
frame:false,
//...
})
这个效果就过分了,连标题栏都没有了,不推荐。相关链接:
window下,删除菜单前后效果图:
方案四,隐藏顶部菜单(mac)
然而,使用官方提供的删除顶部菜单的方法,只在windows
和linux
版本上有效。在mac系统下无效,mac系统下还是会存在顶部的菜单栏。但是mac版本下,本来主窗体和菜单也是分开的。所以整体来说,效果本来还是不错的。
对于mac
版本来说,默认情况下(就是没有对菜单进行设置的话),开发版的时候,菜单比较多(见上图)。打包release
之后,就只有一个菜单了(见下图)。
下面的是使用苏南大叔原创的,在mac
系统下,删除顶部菜单的代码及效果:
代码如下:
总结
苏南大叔分享了删除顶部菜单的方法,更多相关菜单设置的方式,苏南大叔将会在后续文章中讲述:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
谢谢分享
看一下
看一下
谢谢分享
看一下,谢谢分享
妙
感谢!
厉害了
谢谢分享
厉害了