4.Electron之自定义菜单(绑定快捷键、点击事件)

简介: 4.Electron之自定义菜单(绑定快捷键、点击事件)

electron版本:v18.1.0

一、主进程引入Menu模块

const { Menu } = require('electron')

二、编写菜单数据并启用

const { Menu, BrowserWindow } = require('electron')
var template = [
    {
        label: '菜单A',//一级菜单名称
        submenu: [ //定义子菜单
            {
                label: '打开新窗口',
                accelerator: 'ctrl+n',//添加快捷键
                click: () => {  //添加点击事件
                    var win = new BrowserWindow({
                        width: 500,
                        height: 500,
                        webPreFerences: {
                            nodeIntegration: true
                        }
 
                    })
                    win.loadFile("newWindow.html")
                    win.on("closed", () => {
                        win = null
                    });
                }
            },
            { label: '菜单A2' }
        ]
    },
    {
        label: '菜单B',
        submenu: [
            { label: '菜单B1' },
            { label: '菜单B2' }
        ]
    }
]
 
var m = Menu.buildFromTemplate(template)
 
Menu.setApplicationMenu(m)

三、完整代码

inex.js

var electron = require('electron') //引入electron组件
 
var app = electron.app //引入组件app
 
var BrowserWindow = electron.BrowserWindow //窗口引用
 
var mainWindow = null //申明打开窗口
 
app.on('ready', () => { //app初始化参数
    mainWindow = new BrowserWindow({
        windth: 800,
        height: 800,
        webPreferences: {
            nodeIntegration: true,
            contextIsolation: false,
            enableRemoteModule: true
        }
    })
    require('./main/menu.js')
    mainWindow.webContents.openDevTools() //默认打开调试模式
    mainWindow.loadFile('index.html') //打开窗口加载的页面
    mainWindow.on('close', () => { //窗口关闭时,释放页面
        mainWindow = null
    })
})

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>menu</title>
</head>
<body>
   menu
</body>
</html>

menu.js

const { Menu, BrowserWindow } = require('electron')
var template = [
    {
        label: '菜单A',//一级菜单名称
        submenu: [ //定义子菜单
            {
                label: '打开新窗口',
                accelerator: 'ctrl+n',//添加快捷键
                click: () => {  //添加点击事件
                    var win = new BrowserWindow({
                        width: 500,
                        height: 500,
                        webPreFerences: {
                            nodeIntegration: true
                        }
 
                    })
                    win.loadFile("newWindow.html")
                    win.on("closed", () => {
                        win = null
                    });
                }
            },
            { label: '菜单A2' }
        ]
    },
    {
        label: '菜单B',
        submenu: [
            { label: '菜单B1' },
            { label: '菜单B2' }
        ]
    }
]
 
var m = Menu.buildFromTemplate(template)
 
Menu.setApplicationMenu(m)

newWindow.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>菜单打开新窗口</title>
</head>
<body>
    菜单打开新窗口
</body>
</html>

四、运行效果

electron .

相关文章
|
5月前
electron-vue 自定义菜单
electron-vue 自定义菜单
101 0
|
1月前
|
JSON JavaScript 前端开发
开发桌面程序-Electron入门
【10月更文挑战第16天】Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用的框架,嵌入了 Chromium 和 Node.js。本文介绍了如何搭建 Electron 开发环境,包括安装 Node.js、创建项目、配置 main.js 和打包应用。通过简单的步骤,你可以快速创建并运行一个基本的 Electron 应用程序。
开发桌面程序-Electron入门
|
4月前
|
JavaScript 开发工具
Electron 开发过程中主进程的无法看到 console.log 输出怎么办
Electron 开发过程中主进程的无法看到 console.log 输出怎么办
|
5月前
|
前端开发
PC端01,桌面端,electron的开发,electron的开发的系列课程,软件开发必备流程,electron的讲解,electron的开发,vitepress博主的gitee链接,PC端效率软件
PC端01,桌面端,electron的开发,electron的开发的系列课程,软件开发必备流程,electron的讲解,electron的开发,vitepress博主的gitee链接,PC端效率软件
PC端01,桌面端,electron的开发,electron的开发的系列课程,软件开发必备流程,electron的讲解,electron的开发,vitepress博主的gitee链接,PC端效率软件
|
7月前
|
移动开发 开发框架 JavaScript
Vue3 Vite electron 开发桌面程序
Vue3 Vite electron 开发桌面程序
345 0
|
前端开发 算法 JavaScript
从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享(下)
从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享(下)
188 0
|
存储 Web App开发 JavaScript
从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享(上)
从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享(上)
247 0
|
Web App开发 资源调度 前端开发
基于NeteaseCloudMusicApi和electron-vue开发网易云音乐--electron-vue初始化
基于NeteaseCloudMusicApi和electron-vue开发网易云音乐--electron-vue初始化
144 0
|
前端开发 JavaScript API
React使用Electron开发桌面端
React是一个流行的JavaScript库,用于构建Web应用程序。结合Electron框架,可以轻松地将React应用程序打包为桌面应用程序。以下是使用React和Electron开发桌面应用程序的步骤:
React使用Electron开发桌面端
|
前端开发 JavaScript 开发者
前端桌面应用开发:Electron介绍与实践(3)
前端桌面应用开发:Electron介绍与实践(3)
132 0