electron Tary托盘、主菜单、右键单击菜单出现
main.js
const { app, BrowserWindow, Menu } = require('electron')
const path = require('path')//引入主菜单和右键单击菜单
const contextMenu = Menu.buildFromTemplate(require('./menu/contextMenu'))
const mainMenu = Menu.buildFromTemplate(require('./menu/mainMenu')) //引入托盘
const createTray = require('./controller/tray')const createWindow = async ()=>{const win = new BrowserWindow({width:800,height:600,webPreferences:{preload: path.resolve(__dirname,'./preload-js')}})win.loadFile('./renderer/index.html')//挂载右键单击菜单win.webContents.on('context-menu',()=>{contextMenu.popup()})//挂载托盘createTray(app,win)
}app.whenReady().then(()=>{createWindow()app.on('activate',()=>{if(BrowserWindow.getAllWindows().length === 0){createWindow()}})})
Menu.setApplicationMenu(mainMenu)//适配mac 退出再次打开
app.on('window-all-closed',()=>{if(process.platform !== 'darwin'){app.quit()}
})
tray.js
// 设置托盘 (小图标)
const { Tray, Menu } = require('electron')
const path = require('path')const createTray = (app, win) => {let trayMenu = Menu.buildFromTemplate([{ label: 'item 1' },{ label: 'show/hide', click: () => {win.isVisible() ? win.hide() : win.show() //设置显示隐藏}},{ role: 'quit' } //退出])// 这里的路径需要使用绝对路径。const tray = new Tray(path.resolve(__dirname, '../assets/icon.png'))tray.setToolTip('我的聊天工具')tray.on('click', (e) => {// if (e.shiftKey) {// app.quit()// } else {// win.isVisible() ? win.hide() : win.show()// }})tray.setContextMenu(trayMenu)
}module.exports = createTray
这里需要根据电脑进行适配
主菜单的实现
mainMenu.js contextMenu.js 两个文件内容是一样的,可以根据需求实现
module.exports = [{label:"electron",submenu:[{label:'item 1',submenu:[{label:"sub item2"}]}]},{//系统方法规则实现label: 'Edit',submenu:[{role:'undo'},{role:'redo'},{role:'copy'},{role:'paste'}]},{label:'操作',submenu:[{label:"切换开发者模式",role:'toggleDevTools'},{label:'切换全屏',role:'toggleFullScreen'},{ // 定义自己的带操作的菜单label:"Greet",click: () => {console.log("welcome to Electrom")},accelerator: 'Shift+Alt+G' //组合键}]}
]
electron Tary托盘、主菜单、右键单击菜单出现相关推荐
- Excel(VBA)自定义右键单击菜单以启动宏(示例代码)
主要介绍 Excel(VBA)自定义右键单击菜单以启动宏(示例代码)以及相关的经验技巧 THISWORKBOOK (paste into ThisWorkbook, macros that open ...
- qt 菜单/右键快捷菜单 选项不可操作/背景/分隔线颜色样式表
经过网上启示并测试,右键快捷菜单和菜单其实都是用QMenu这个样式. 以下的颜色纯粹是随意填的颜色,使用时根据自己需求填写, 颜色rgb中取值为0-255,如果使用#+颜色,取值为0x-0xFF QM ...
- 使用Bootstrap制作右键单击自定义菜单
我们可以轻松地通过右键单击创建一个漂亮的自定义菜单. 让我们创建一个div右键单击启用自定义菜单. <div class="col-lg-6 bg-info" id=&quo ...
- win11右键开始菜单什么都不显示
问题场景: 如图所示,右键单击菜单没有选项弹出,显示空白. 问题描述 我的原因: 最开始安装Windows11的时候,使用了删除注册表HKEY_CLASSES_ROOT\lnkfile中的IsShor ...
- js实现右键单击打开自定义的菜单
今天分享一个,单击鼠标右键弹出自定义菜单,选中不同菜单选项,实现其对应功能 首先先自已定义一个菜单 <div id="menu"><ul><li ...
- 【电脑Windows日常】如何在 Windows 11 中自定义右键单击上下文菜单、自定义或者删除右键菜单的选项,包括桌面、文件夹和文件——详细教程(5个方法)
前言 虽然许多人喜欢Windows 11 的简化右键单击上下文菜单,但有些人对截断的菜单不太满意.让我们看看一些根据您的喜好对其进行自定义的方法. 而且,很多默认的应用会使得右键菜单非常臃肿,需要进一 ...
- electron 菜单栏_如何在Electron JS中添加任务栏图标菜单?
electron 菜单栏 If you are new here, please consider checking out my recent articles on Electron JS inc ...
- 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜单 快捷方式...
{================================================================= 功 能: 创建 桌面.发送到 ...
- 鼠标右键新建菜单删除或添加项目
因为使用的需要,我们常会在鼠标右键新建菜单中添加项目,或因某种程序删除后鼠标右键新建菜单中残留的项目需要删除,可以用下列方法达到目标. 1.在"开始"中的"运行" ...
最新文章
- java+pom.xml+是什么_java – 父pom.xml的包装无效,必须是“pom”,而是“ear”
- Linux下Tomcat与Apache Web服务器的整合
- boost::core::is_same用法测试实例
- 30多年程序员生涯经验总结(成功源自于失败中的学习;失败则是因为容忍错误的横行)...
- 疯狂游戏型计算机配置清单,电脑配置清单
- (笔试题)和0交换的排序
- 【网络流专练一】UVA五题(UVA12125,UVA11082,UVA10983,UVA1306,UVA10735)
- js代码优化(不定时更新)
- ln命令:软链接建立与删除
- 计算机在档案部门应用范围,计算机在档案管理中的相关运用
- 如果你热爱编码,就应该少写代码
- 什么是promise?
- 免费的 XShell 替代品,我推荐这5款软件,一个比一个香!
- 剽悍一只猫《一年顶十年》读书笔记
- c语言做相册影集,制作DIY相册影集教程-如何制作影集
- 逻辑回归 自由度_回归自由度的官方定义
- python程序设计 从基础入门到实战应用电子书_Python程序设计——从基础入门到实战应用...
- Linux资源控制-使用cgroup控制CPU和内存
- 什么是物联网NB-IoT技术?
- 解决Macbook在win7系统下不能识别USB设备,完全没反应