• electron-Menu创建原生应用菜单和上下文菜单。


    当在MacOS、Windows、Linux中使用menu设置程序菜单时,会设置在各个程序窗体的顶层。

    Note: 如果没有在app中设置一个菜单,系统会自动生成一个默认菜单, 默认生成的菜单中包含了一些初始选项,例如 文件,编辑视图,窗口,帮助

    app.on('ready', function () {
      createWindow ();createMenu();
    });
    function createMenu(){
      const {app, Menu} = require('electron');
      const template = [
        {
          label: 'Edit',
          submenu: [
            {role: 'undo'},
            {role: 'redo'},
            {type: 'separator'},
            {role: 'cut'},
            {role: 'copy'},
            {role: 'paste'},
            {role: 'pasteandmatchstyle'},
            {role: 'delete'},
            {role: 'selectall'}
          ]
        },
        {
          label: 'View',
          submenu: [
            {role: 'reload'},
            {role: 'forcereload'},
            {role: 'toggledevtools'},
            {type: 'separator'},
            {role: 'resetzoom'},
            {role: 'zoomin'},
            {role: 'zoomout'},
            {type: 'separator'},
            {role: 'togglefullscreen'}
          ]
        },
        {
          role: 'window',
          submenu: [
            {role: 'minimize'},
            {role: 'close'}
          ]
        },
        {
          role: 'help',
          submenu: [
            {
              label: 'Learn More',
              click () { require('electron').shell.openExternal('https://electron.atom.io'); }
            }
          ]
        }
      ];
    
      if (process.platform === 'darwin') {
        template.unshift({
          label: app.getName(),
          submenu: [
            {role: 'about'},
            {type: 'separator'},
            {role: 'services', submenu: []},
            {type: 'separator'},
            {role: 'hide'},
            {role: 'hideothers'},
            {role: 'unhide'},
            {type: 'separator'},
            {role: 'quit'}
          ]
        });
    
        // Edit menu
        template[1].submenu.push(
            {type: 'separator'},
            {
              label: 'Speech',
              submenu: [
                {role: 'startspeaking'},
                {role: 'stopspeaking'}
              ]
            }
        );
    
        // Window menu
        template[3].submenu = [
          {role: 'close'},
          {role: 'minimize'},
          {role: 'zoom'},
          {type: 'separator'},
          {role: 'front'}
        ];
      }
    
      const menu = Menu.buildFromTemplate(template);
      Menu.setApplicationMenu(menu);
    }
  • 相关阅读:
    魔术方法详解、魔术变量、预定义常量、预定义变量
    RabbitMQ:生产者消费者模型构建/为消息自定义属性/自定义消费者
    RabbitMQ:相关概念
    RabbitMQ:基于centos7安装
    Spring Boot:整合Dubbo
    Dubbo:服务提供者、消费者相关配置
    Dubbo:Dubbo Admin环境搭建
    Zookeeper:Curator Watcher机制和事务控制
    Zookeeper:Curator增删改查API
    Zookeeper:集群和zab协议
  • 原文地址:https://www.cnblogs.com/luzhanshi/p/11338288.html
Copyright © 2020-2023  润新知