天天看點

electron菜單的基本使用

對electron了解之後,讓我們學習建立一個視窗,使用自己的編寫的視窗

搭建環境可以看https://www.cnblogs.com/zhoulifeng/p/12306050.html

Menu菜單

建立一個menu.js檔案,編寫一下代碼,結構相當于JSON格式的

const {
    Menu
} = require('electron')
const template = [{
        label: '首頁'
    },
    {
        label: '新聞資訊',
        submenu: [{
            label: '國内新聞',
            submenu: [{
                label: '北京新聞'
            }, {
                label: '河南新聞'
            }]
        }, {
            label: '國際新聞'
        }]
    },
    {
        label: '娛樂',
        submenu: [{
            label: '音樂'
        }, {
            label: '電影'
        }, {
            label: '綜藝'
        }]
    },
    {
        label: '科技',
        submenu: [{
            label: 'Al'
        }, {
            label: '手機'
        }, {
            label: '網際網路'
        }]
    }
]

var list = Menu.buildFromTemplate(template)
Menu.setApplicationMenu(list)      

建立主入口檔案main.js檔案

在ready生命周期中,直接加入下面的代碼,

const electron = require('electron') //引入electron子產品
var app = electron.app //建立electron引用
var BrowserWindow = electron.BrowserWindow; //建立視窗引用
      

  require(’./openMenu/menu.js’)

主入口js
var mainWindow = null; //聲明要打開的主視窗
app.on('ready', () => {
    //設定視窗的大小
    mainWindow = new BrowserWindow({
        width: 900,
        height: 900,
        webPreferences: {
            nodeIntegration: true
        }
    })
    require('./openMenu/menu.js')
    mainWindow.loadFile('menu.html'); //要加載的檔案

    //監聽關閉事件,在把主視窗設定位null
    mainWindow.on('closed', () => {
        mainWindow = null;
    })
})
      

 這時候我們打開終端輸入

electron .

之後,就可以看到效果了,

electron菜單的基本使用

如果想給菜單綁定點選事件,在menu.js引入

BrowserWindow

子產品

如果要打開新的視窗,就必須要建立新的html檔案

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

  對需要的菜單綁定事件

{
            label: '國際新聞',
            click: () => {
                var open = new BrowserWindow({
                    width: 500,
                    height: 500,
                    webPreferences: {
                        nodeIntegration: true
                    }
                })
                open.loadFile('yellow.html')
                open.on('close', () => {
                    open = null
                })
            },
        }