博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
electron 的中文文档的地址 以及 窗口改变的步骤
阅读量:6088 次
发布时间:2019-06-20

本文共 6866 字,大约阅读时间需要 22 分钟。

electron的中文文档的地址:

http://www.kancloud.cn/wizardforcel/electron-doc/137791

1.如何创建窗口和改变窗口:

import { BrowserWindow, globalShortcut, Menu } from 'electron'import Common from '../common/common.js'const winURL = process.env.NODE_ENV === 'development'    ? `http://localhost:${require('../../../../config').port}`    : `file://${__dirname}/index.html`function createWindow() {    var mainWindow = new BrowserWindow({        height: Common.WINDOW_SIZE_LOGIN.height,        width: Common.WINDOW_SIZE_LOGIN.width,        resizable: false,        frame: false,    });    mainWindow.loadURL(winURL);    mainWindow.on('closed', () => {        mainWindow = null    });    //前期为了调试方面,默认打开控制台    mainWindow.webContents.openDevTools({ detach: true });    //注册打开控制台的快捷键    globalShortcut.register('ctrl+shift+alt+e', function () {        let win = BrowserWindow.getFocusedWindow();        if (win) {            win.webContents.openDevTools({ detach: true });        }    });    //去掉默认菜单栏    Menu.setApplicationMenu(null);    // eslint-disable-next-line no-console    console.log('mainWindow opened');   //添加这段代码    BrowserWindow.mainWindow = mainWindow;    return mainWindow;}module.exports = {    createWindow};

如何把electron的按钮的最大化,最小化 关闭窗口改变;

/** * Created by Administrator on 2017/4/26. * 页面对窗口的一些操作封装,用于渲染进程 */"use strict";const Common = require('../common/common.js');const { ipcRenderer, remote } = require('electron');const RUN_LOCATION = '\\Software\\Microsoft\\Windows\\CurrentVersion\\Run';//const file = process.execPath;//const WinReg = require('winreg');let flashTrayTimer = null;class WindowUtil {    // 窗口最小化    static minWindow() {        remote.getCurrentWindow().minimize();    }    // 窗口最大化    static maxWindow(isMaxed) {        const browserWindow = remote.getCurrentWindow();        if (!isMaxed) {            browserWindow.unmaximize();        } else {            browserWindow.maximize();        }    }    // 设置窗口是否能改变大小,参数true/false    static setResizable(resizable) {        remote.getCurrentWindow().setResizable(resizable);    }    // 下载文件    static download(url) {        remote.getCurrentWebContents().downloadURL(url);    }    // 隐藏窗口    static hide() {        const browserWindow = remote.getCurrentWindow();        browserWindow.hide();    }    // 显示窗口    static show() {        const browserWindow = remote.getCurrentWindow();        browserWindow.show();    }    // 窗口闪烁    static flashFrame() {        const browserWindow = remote.getCurrentWindow();        //   if(browserWindow.isFocused() || browserWindow.isVisible())        if (!browserWindow.isFocused()) {            browserWindow.showInactive();            browserWindow.flashFrame(true);        }    }    // 设置窗口最前端显示    static setAlwaysOnTop(top) {        const browserWindow = remote.getCurrentWindow();        browserWindow.setAlwaysOnTop(top);    }    // 设置开机启动    static enableAutoStart(callback) {        let key = new WinReg({ hive: WinReg.HKCU, key: RUN_LOCATION });        key.set('EUC', WinReg.REG_SZ, file, (err) => {            console.log('设置自动启动' + err);            callback(err);        });    }    // 取消开机启动    static disableAutoStart(callback) {        let key = new WinReg({ hive: WinReg.HKCU, key: RUN_LOCATION });        key.remove('EUC', (err) => {            console.log('取消自动启动' + err);            callback(err);        });    }    // 获取是否开机启动    static getAutoStartValue(callback) {        let key = new WinReg({ hive: WinReg.HKCU, key: RUN_LOCATION });        key.get('EUC', function (error, result) {            console.log("查询自动启动:" + JSON.stringify(result));            console.log("file:" + file);            if (result) {                callback(true);            }            else {                callback(false);            }        });    }    /**     * 托盘图标闪烁     * @param flash true:闪烁;false:停止     */    static flashTray(flash) {        let hasIcon = false;        const tayIcon = './imgs/logo.ico';        const tayIcon1 = './imgs/empty.png';        if (flash) {            if (flashTrayTimer) {                return;            }            flashTrayTimer = window.setInterval(() => {                ipcRenderer.send('ChangeTrayIcon', hasIcon ? tayIcon : tayIcon1);                hasIcon = !hasIcon;            }, 500);        } else {            if (flashTrayTimer) {                window.clearInterval(flashTrayTimer);                flashTrayTimer = null;            }            ipcRenderer.send('ChangeTrayIcon', tayIcon);        }    }}module.exports = WindowUtil;

3、窗口大小的改变;

添加一句话:BrowserWindow.mainWindow = mainWindow;不知道有用没有用 this.$router.push('/mainChat');//路由跳转mainChat            const remote = require('electron').remote;            const BrowserWindow = remote.BrowserWindow;                       BrowserWindow.mainWindow.setSize(common.WINDOW_SIZE_MAINCIAT.width,common.WINDOW_SIZE_MAINCIAT.height);            BrowserWindow.mainWindow.center()common.WINDOW_SIZE_MAINCIAT.width, 850common.WINDOW_SIZE_MAINCIAT.height,600

 4.electron 的Api部分;

win.setSize(width, height[, animate])    width Integer    height Integer    animate Boolean (可选) OS X重新设置窗口的宽高值.win.getSize()返回一个数组,它包含了窗口的宽,高.win.setContentSize(width, height[, animate])    width Integer    height Integer    animate Boolean (可选) OS X重新设置窗口客户端的宽高值(例如网页界面).win.getContentSize()返回一个数组,它包含了窗口客户端的宽,高.win.setMinimumSize(width, height)    width Integer    height Integer设置窗口最小化的宽高值.win.getMinimumSize()返回一个数组,它包含了窗口最小化的宽,高.win.setMaximumSize(width, height)    width Integer    height Integer设置窗口最大化的宽高值.win.getMaximumSize()返回一个数组,它包含了窗口最大化的宽,高.win.setResizable(resizable)    resizable Boolean设置窗口是否可以被用户改变size.win.isResizable()返回 boolean,窗口是否可以被用户改变size.win.setMovable(movable) OS X Windows    movable Boolean设置窗口是否可以被用户拖动. Linux 无效.win.isMovable() OS X Windows返回 boolean,窗口是否可以被用户拖动. Linux 总是返回 true.win.setMinimizable(minimizable) OS X Windows    minimizable Boolean设置窗口是否可以最小化. Linux 无效.win.isMinimizable() OS X Windows返回 boolean,窗口是否可以最小化. Linux 总是返回 true.win.setMaximizable(maximizable) OS X Windows    maximizable Boolean设置窗口是否可以最大化. Linux 无效.win.isMaximizable() OS X Windows返回 boolean,窗口是否可以最大化. Linux 总是返回 true.win.setFullScreenable(fullscreenable)    fullscreenable Boolean设置点击最大化按钮是否可以全屏或最大化窗口.win.isFullScreenable()返回 boolean,点击最大化按钮是否可以全屏或最大化窗口.win.setClosable(closable) OS X Windows    closable Boolean设置窗口是否可以人为关闭. Linux 无效.win.isClosable() OS X Windows返回 boolean,窗口是否可以人为关闭. Linux 总是返回 true.win.setAlwaysOnTop(flag)    flag Boolean是否设置这个窗口始终在其他窗口之上.设置之后,这个窗口仍然是一个普通的窗口,不是一个不可以获得焦点的工具箱窗口.win.isAlwaysOnTop()返回 boolean,当前窗口是否始终在其它窗口之前.win.center()窗口居中.win.setPosition(x, y[, animate])    x Integer    y Integer    animate Boolean (可选) OS X移动窗口到对应的 x and y 坐标.win.getPosition()返回一个包含当前窗口位置的数组.win.setTitle(title)    title String改变原窗口的title.win.getTitle()返回原窗口的title.注意: 界面title可能和窗口title不相同.win.flashFrame(flag)    flag Boolean开始或停止显示窗口来获得用户的关注.win.setSkipTaskbar(skip)

 

转载地址:http://hhpwa.baihongyu.com/

你可能感兴趣的文章
[笔记] 数码管显示(十一)
查看>>
github readme.md 添加图片
查看>>
喷水装置问题(一)
查看>>
理解镜像和容器,并运行whalesay镜像
查看>>
bzoj3504: [Cqoi2014]危桥
查看>>
淘宝购物车计算总价格
查看>>
面试之并发的解决方案
查看>>
springcloud之config 配置管理中心之配置属性加密解密
查看>>
mysql 单表,多表,符合条件,子查询
查看>>
web的越权访问的处理(步骤详解)
查看>>
2011,向前冲
查看>>
js拼接字符串后swiper不能动的解决方案
查看>>
微信支付接口开发(前言)
查看>>
Android 解析XML文件和生成XML文件
查看>>
windows 7下删除右键新建菜单项的多余选项
查看>>
知问前端——Ajax登录
查看>>
C++安装失败解决办法
查看>>
Object.defineProperty
查看>>
记录一下我在lubuntu里面用到的工具
查看>>
首元素无边线
查看>>