三 自定义应用图标和窗口置顶

本文档介绍了如何在 Electron 应用中添加自定义图标以及实现窗口置顶功能。首先,通过在项目根目录创建并引入图标文件,然后修改相关配置使应用显示新图标。接着,通过更新menu.js文件,实现窗口置顶的菜单项,运行应用后,用户可以通过菜单选择窗口置顶或取消置顶。

本章主要内容

  1. 添加自定义应用图标
  2. 添加窗口置顶功能

到目前为止,我们的应用都是用的默认的应用图标,这章我们就添加我们自己的图标。

本系列的源码地址:https://gitcode.net/leqi/electronapp

一、添加自定义图标

1. 引入图标

在根目录下新建一个名为public的文件夹,将我们的应用程序图标放入其中。

2. 修改main.js

const { app, BrowserWindow, Menu } = require('electron');
const menu = require('./menu');
const path = require('path');

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    icon: path.join(__dirname, 'public/favicon.ico')
  })

  win.loadFile('index.html')
}

app.whenReady().then(() => {
  createWindow();

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow()
    }
  });
});

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

Menu.setApplicationMenu(menu);

3. 运行应用

npm start

在这里插入图片描述我们可以看到应用的图标已经更换成功了。

二、添加窗口置顶功能

1.修改menu.js

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

let isAlwaysOnTop = false;
const template = [
  // 文件菜单
  {
    label: '文件',
    submenu: [
      {
        label: '退出',
        role: 'close'
      }
    ]
  },
  // 编辑菜单
  {
    label: '编辑',
    submenu: [
      { label: '撤销', role: 'undo' },
      { label: '重做', role: 'redo' },
      { type: 'separator' },
      { label: '剪切', role: 'cut' },
      { label: '复制', role: 'copy' },
      { label: '粘贴', role: 'paste' },
      { label: '删除', role: 'delete' },
      { type: 'separator' },
      { label: '全选', role: 'selectAll' }
    ]
  },
  // 查看菜单
  {
    label: '查看',
    submenu: [
      {
        label: '开发者工具',
        role: 'toggleDevTools'
      },
      {
        type: 'separator'
      },
      {
        label: '全屏',
        role: 'togglefullscreen'
      },
      {
        label: '窗口置顶',
        click() {
          isAlwaysOnTop = !isAlwaysOnTop;
          const window = BrowserWindow.getFocusedWindow();
          window.setAlwaysOnTop(isAlwaysOnTop);
        }
      }
    ]
  },
  // 帮助菜单
  {
    label: '帮助',
    role: 'help',
    submenu: [
      {
        label: '关于electronapp',
        click() {
          dialog.showMessageBox({
            message: '这是一个Electron应用!',
            type: 'info',
            title: 'electron应用'
          });
        }
      }
    ]
  }
];

const menu = Menu.buildFromTemplate(template);

module.exports = menu;

2.运行应用程序

npm start

在这里插入图片描述
现在可以点击看“查看”菜单下的“窗口置顶”子菜单看看效果,我们可以看到窗口已经可以成功切换置顶和非置顶状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

景能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值