以下是一个简单的例子,演示如何使用 Tray 模块创建一个系统托盘图标:
const { app, Tray, Menu } = require('electron');
const path = require('path');
let tray = null;
app.whenReady().then(() => {
// 创建一个系统托盘图标
tray = new Tray(path.join(__dirname, 'icon.png'));
// 创建上下文菜单
const contextMenu = Menu.buildFromTemplate([
{ label: 'Item 1', type: 'normal', click: () => console.log('Item 1 clicked') },
{ label: 'Item 2', type: 'normal', click: () => console.log('Item 2 clicked') },
{ type: 'separator' },
{ label: 'Quit', type: 'normal', click: () => app.quit() }
]);
// 设置托盘图标的上下文菜单
tray.setContextMenu(contextMenu);
// 设置托盘图标的提示文本
tray.setToolTip('My Electron App');
});
app.on('window-all-closed', () => {
// 在 macOS 中,关闭所有窗口时隐藏 Dock 图标,而不是退出应用
if (process.platform !== 'darwin') {
app.quit();
}
});
在这个例子中,我们首先使用 new Tray(path.join(__dirname, 'icon.png')) 创建了一个系统托盘图标,并指定了图标的路径。然后,我们使用 Menu.buildFromTemplate 创建了一个上下文菜单,定义了菜单项的标签、类型(normal 表示普通菜单项,separator 表示分隔线)以及点击菜单项时的回调函数。最后,通过 tray.setContextMenu(contextMenu) 将上下文菜单设置给托盘图标。
此外,我们使用 tray.setToolTip('My Electron App') 设置了托盘图标的提示文本。
在应用程序准备就绪后(app.whenReady().then()),我们创建并设置系统托盘图标。在 macOS 中,当所有窗口关闭时,我们通过监听 window-all-closed 事件来隐藏 Dock 图标而不是退出应用,因为在 macOS 中,应用程序通常在所有窗口关闭时保持运行。
请注意,图标文件(icon.png)的路径应该是正确的,它通常是相对于主进程文件的路径。根据你的应用程序的目录结构,你可能需要调整图标文件的路径。
转载请注明出处:http://www.zyzy.cn/article/detail/10929/Electron