使用Web前端技术开发桌面应用---Electron 创建菜单和基本使用

news/2024/7/19 14:07:20 标签: js, 前端, electron

码字不易,有帮助的同学希望能关注一下我的微信公众号:Code程序人生,感谢!代码自用自取。

在这里插入图片描述

每一个桌面应用都会有一个窗口,这个视频就学习一下在Electron中使用Menu来完成菜单的创建。话不多说,直接动手操作。

编写菜单模板

Electron中编写菜单,需要先建立一个模板,这个目标很类似我们JSON或者类的数组。

我们打开项目,在项目的根目录下新建一个文件夹menu,然后新建一个menu.js文件,然后编写如下代码。

const { Menu } = require('electron')

var template = [
    {
        label:'菜单A',
        submenu:[
            {label:'A子菜单1'},
            {label:'A子菜单2'}
        ]

    },
    {
        label:'菜单B',
        submenu:[
            {label:'B子菜单1'},
            {label:'B子菜单2'}
        ]
    }
]

var m = Menu.buildFromTemplate(template)

Menu.setApplicationMenu(m)

然后再打开主进程main.js文件,在ready生命周期中,直接加入下面的代码,就可以实现自定义菜单了。

require('./main/menu.js')

需要注意的是,Menu属于是主线程下的模块,所以只能在主线程中使用,这个要记清楚。

使用菜单打开新窗口

有了菜单之后,可以在菜单中加入click事件,代码如下:

const {Menu, BrowserWindow} = require('electron');

var template = [
    {
        label:'菜单A',
        submenu:[
            {
                label:'A子菜单1',
                click:() => {
                    var win = new BrowserWindow({
                        width:500,
                        height:500,
                        webPreferences:{
                            nodeIntegration:true
                        }
                    })
                    win.loadFile('remotePage.html')

                    win.on('closed',() => {
                        win = null;
                    })
                }
            },
            {label:'A子菜单2'}
        ]
    },
    {
        label:'菜单B',
        submenu:[
            {label:'B子菜单1'},
            {label:'B子菜单2'}
        ]
    }
];

var m = Menu.buildFromTemplate(template);

Menu.setApplicationMenu(m);

这时候我们打开终端输入electron .之后,就可以看到效果了,当然我们还可以绑定快捷键,我们下一个博客再讲解。这个先动手作出来吧。

在这里插入图片描述


有微信小程序课设、毕设需求联系个人QQ:505417246

关注下面微信公众号,可以领取微信小程序、Vue、TypeScript、前端、uni-app、全栈、Nodejs、Python等实战学习资料
最新最全的前端知识总结和项目源码都会第一时间发布到微信公众号,请大家多多关注,谢谢

在这里插入图片描述


http://www.niftyadmin.cn/n/1576521.html

相关文章

使用 python 的request模块爆破 form 表单的简易脚本

python 的 http 中 request模块在web 表单爆破的使用方法request模块中代理的使用方式request 模块是http 中比较全的模块,简单易用,比之前文章中使用的 httplib,urllib,urllib2都要好用.可以替换为request 的 session 方法.# -*- coding: utf-8 -*- import requestsoutFile o…

使用Web前端技术开发桌面应用---Electron 制作右键菜单

码字不易,有帮助的同学希望能关注一下我的微信公众号:Code程序人生,感谢!代码自用自取。 上个博客讲解了如何设置顶部菜单,我们也作了一个菜单的小案例,但是没有讲解如何绑定快捷键。这节我们会进行讲解&am…

使用Web前端技术开发桌面应用---Electron中通过链接打开浏览器

码字不易&#xff0c;有帮助的同学希望能关注一下我的微信公众号&#xff1a;Code程序人生&#xff0c;感谢&#xff01;代码自用自取。 在渲染进程中默认加入一个<a>标签&#xff0c;进行跳转默认是直接在窗口中打开&#xff0c;而不是在浏览器中打开的&#xff0c;如果…

微软产品系列之AD域控制器搭建

现在可以开始创建域控制器了&#xff0c;域控制器是域中的第一台服务器&#xff0c;域控制器上存储着 Active Directory&#xff0c;可以说&#xff0c;域控制器就是域的灵魂。我们准备在 Florence 上创建域控制器&#xff0c;首先检查 Florence 网卡的 TCP /IP 属性&#xff0…

使用Web前端技术开发桌面应用---Electron中嵌入网页和打开子窗口

码字不易&#xff0c;有帮助的同学希望能关注一下我的微信公众号&#xff1a;Code程序人生&#xff0c;感谢&#xff01;代码自用自取。 上期内容我们学了如何在浏览器中打开网页&#xff0c;这节我们学习一下如何用BrowserView来嵌入一个网页到我们应用中&#xff0c;这很类似…

mvn -DskipTests和-Dmaven.test.skip=true区别

在使用mvn package进行编译、打包时&#xff0c;Maven会执行src/test/java中的JUnit测试用例&#xff0c;有时为了跳过测试&#xff0c;会使用参数-DskipTests和-Dmaven.test.skiptrue&#xff0c;这两个参数的主要区别是&#xff1a; -DskipTests&#xff0c;不执行测试用例&a…

使用Web前端技术开发桌面应用---Electron中Window.open的子窗口和父窗口间的通信

码字不易&#xff0c;有帮助的同学希望能关注一下我的微信公众号&#xff1a;Code程序人生&#xff0c;感谢&#xff01;代码自用自取。 上期博客在最后&#xff0c;学习了用window.open打开了子窗口&#xff0c;这期学习一下父子窗口如何通信&#xff0c;通信在任何框架中都是…

使用Web前端技术开发桌面应用---Electron 选择文件对话框

码字不易&#xff0c;有帮助的同学希望能关注一下我的微信公众号&#xff1a;Code程序人生&#xff0c;感谢&#xff01;代码自用自取。 这期博客开始我们讲解Electron下的对话框操作&#xff0c;对话框一般会有选择文件对话框&#xff0c;保存文件对话框和确认对话框。这节我们…