Electron Menu菜单设置和右键设置

 主进程代码:

import { Menu, shell, ipcMain, BrowserWindow } from 'electron';

// normal (常规菜单项)
// separator (分割线)
// submenu (子菜单)
// checkbox (复选菜单项)
// radio (单选菜单项)

const template = [
  {
    label: '原生应用菜单演示',
    submenu: [
      {
        label: '个人信息',
      },
      {
        type: 'separator',
      },
      {
        label: '开机启动',
        type: 'checkbox',
        checked: true,
      },
      {
        type: 'separator',
      },
      {
        label: '性别',
        submenu: [
          {
            label: '男',
            type: 'radio',
          },
          {
            label: '女',
            type: 'radio',
          },
        ],
      },
    ],
  },
  {
    label: '文件',
    submenu: [
      {
        label: '新建',
        click() {},
      },
      {
        label: '打开',
        accelerator: 'ctrl+q',
        click() {},
      },
      {
        label: '保存',
        click() {

        },
      },
      {
        type: 'separator',  // 分割线
      },
      {
        label: '打印',
        click() {},
      },
      {
        label: '退出',
        click() {},
      },
    ],
  },
  {
    label: '编辑',
    submenu: [
      {
        label: '撤销',
        role: 'undo',
      },
      {
        label: '恢复',
        role: 'redo',
      },
      {
        type: 'separator',
      },
      { label: '截切',
        role: 'cut',
      },
      {
        label: '复制',
        role: 'copy',
      },
      {
        label: '黏贴',
        role: 'paste',
      },

      {
        label: '删除',
        role: 'delete',
      },
      {
        label: '全选',
        role: 'selectall',
      },
    ],
  },
  {
    label: '视图',
    submenu: [
      {
        label: '缩小',
        role: 'zoomin',
      },
      { label: '放大',
        role: 'zoomout',
      },
      { label: '重置缩放',
        role: 'resetzoom',
      },
      {
        type: 'separator',
      },
      {
        label: '全屏',
        role: 'togglefullscreen',
      },
    ],
  },
  {
    label: '帮助',
    submenu: [
      {
        label: '关于',
        click() {
          shell.openExternal('https://www.baidu.com');
        },
      },
    ],
  },
];
const m = Menu.buildFromTemplate(template);


Menu.setApplicationMenu(m);

// 右键菜单
const contextMenuTemplate = [
  {
    label: '撤销',
    role: 'undo',
  },
  {
    label: '恢复',
    role: 'redo',
  },
  {
    type: 'separator',
  },
  {
    label: '截切',
    role: 'cut',
  },
  {
    label: '复制',
    role: 'copy',
  },
  {
    label: '黏贴',
    role: 'paste',
  },
  {
    type: 'separator',
  },  // 分隔线
  {
    label: '全选',
    role: 'selectall',
  },
  // Select All菜单项
];

const contextMenu = Menu.buildFromTemplate(contextMenuTemplate);


// 监听右键事件
ipcMain.on('contextMenu', () => {
  contextMenu.popup(BrowserWindow.getFocusedWindow());
});

渲染进程代码:

 

import {ipcRenderer} from 'electron'



document.addEventListener('contextmenu',function(e){
    // 右键事件触发
    e.preventDefault();

    ipcRenderer.send('contextMenu');
})

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值