> 本文我们讲解下怎么修改窗口样式,系统默认的窗口非常普通,通常与设计不符,所以我们要自定义,接下来我们讲解下怎么去掉原有样式,怎么实现实现窗口的最小化,最大化和关闭按钮。还有怎么打开一个新页面

前三篇文章传送门

electron-vue跨平台桌面应用开发实战教程(一)——Hello World

electron-vue跨平台桌面应用开发实战教程(二)——主进程常用配置

electron-vue跨平台桌面应用开发实战教程(三)——动态修改窗口大小

我们基于上一篇文章的代码(上一篇文章的git地址:https://gitee.com/hedavid/electron-vue-demos)接着写。先看下上一篇文章实现的样式:

接下来我们就要开始今天的讲解了

1.去掉外边框

我们修改background.js,修改createWindow方法,创建BrowserWindow时增加
frame: false

win = new BrowserWindow({width: 400,height: 550,frame: false,webPreferences: {nodeIntegration: true}})

这样窗口就会变成这样:

但是现在又有一个新问题,应用没有关闭按钮,没有最小化按钮,也不能拖拽移动位置了,接下来我们为他创建一个工具条。

2.增加操作栏

(注意:在此处还涉及到其他页面的样式调整,在这里就不列举了,查看git上的代码即可) 我们修改Login.vue,增加以下代码(只展示关键代码,部分样式和html请查看git上的代码):

const { ipcRenderer } = require('electron')
// 点击最小化按钮调用的方法
minimize () {ipcRenderer.send('minimize')
},
// 点击关闭按钮调用的方法
close () {ipcRenderer.send('close')
},

窗口的拖动需要增加以下样式:

-webkit-app-region: drag; // 可拖动
-webkit-app-region: no-drag; // 不可拖动

3.主线程中增加对应的最小化和关闭窗口的方法

ipcMain.on('close', e =>win.close()
)ipcMain.on('minimize', e =>win.minimize()
)

接下来我们改造一下主页面,来实现打开新窗口的功能

4. 打开新窗口

4.1 新建Calendar.vue

<template><div><el-calendar v-model="value"></el-calendar></div>
</template><script>
export default {name: 'Calendar',data () {return {value: new Date()}}
}
</script>

4.2 修改router

{path: '/Calendar',name: 'Calendar',component: Calendar
},

4.3 修改background.js

const winURL = process.env.NODE_ENV === 'development'? 'http://localhost:8080': `file://${__dirname}/index.html`

上边这段代码主要是用来解决vue路由访问页面的问题,端口号是vue启动的默认端口号,如果有需要可以自行修改

win.loadURL(winURL)

上边这段代码主要是修改主窗口加载的url,修改我我们上边声明的那个

// 定义calendar窗体
let calendarWin
// 创建calendar窗口方法
function openCalendarWindow () {calendarWin = new BrowserWindow({width: 400,height: 550,parent: win, // win是主窗口webPreferences: {nodeIntegration: true}})calendarWin.loadURL(winURL + '#/Calendar')calendarWin.on('closed', () => { calendarWin = null })
}
ipcMain.on('openCalendarWindow', e =>openCalendarWindow()
)

上边这段代码是打开新窗口的代码,calendarWin.loadURL(winURL + '#/Calendar') 是指向我们上边创建的页面。

4.4 在Home.vue页面中调用创建新窗口的方法

openCalendarWindow () {ipcRenderer.send('openCalendarWindow')
}

接下来我们看下效果

以上就是今天的全部内容,下一篇我们讲一下怎么发系统通知,最小化到托盘,剪贴板

vue 拖动 datatransfer 问题_electron-vue跨平台桌面应用开发实战教程(四)——窗口样式amp;打开新窗口...相关推荐

  1. vue+electron 跨平台桌面应用开发实战教程

    一.创建项目 1.1 安装vue-cli 先查看是否已经安装了vue-cli,vue-cli的版本是什么? 查看版本命令:vue --version 如果版本叫老,可以直接卸载,再安装最新版本 卸载命 ...

  2. vue 调用c++_electron-vue跨平台桌面应用开发实战教程(七)——ffi调用C++(macOS平台)...

    electron功能很强大,但是有一些跟操作系统底层交互的功能,electron无法实现,这个时候我们就可以调用原生来配合完成对应功能,本文主要讲解在macOS平台下,调用C++的dylib文件 在开 ...

  3. electron-vue跨平台桌面应用开发实战教程(三)——动态修改窗口大小

    前边两篇文字简单介绍了一下怎么搭建electron-vue项目,主进程的基本配置,主进程和渲染进程之间的通讯.本文我们主要来讲解下如何动态的修改窗口大小. 通常很多桌面应用,初次打开都需要登录,登录窗 ...

  4. vue引用electron_如何搞定跨平台桌面开发?Electron助你快速起步

    嗨,我是勾勾.今天要介绍的是 Electron 跨平台桌面应用开发. Electron(https://electronjs.org/)是一个运行平台,它能够让我们通过 HTML + CSS + Ja ...

  5. 盘点 | 跨平台桌面应用开发的5大主流框架

    受益于开源技术的发展,以及响应快速开发的实际业务需求,跨平台开发不仅限于移动端跨平台,桌面端虽然在市场应用方面场景不像移动端那么丰富,但也有市场的需求. 相对于个人开发者而言,跨平台框架的使用,主要为 ...

  6. 跨平台桌面应用开发工具Electron v11.0.4

    介绍: Electron是GitHub发布的跨平台桌面应用开发工具,支持Web技术开发桌面应用,其本身是基于C++开发的,GUI核心来自于Chrome,而JavaScript引擎使用v8. v11.0 ...

  7. 基于vue,解决打开新窗口被浏览器拦截的问题

    首先,我们先来说一下在什么情况下,新窗口会被阻截,以及阻截的原因. 当使用 window.open(url,"_blank")打开新窗口时,如果url是通过ajax从后台获取 到的 ...

  8. vue打开新窗口并且实现传参,有图有真相

    我要实现的功能是打开一个新窗口用来展示新页面,而且需要传参数,并且参数不能显示在地址栏里面,而且当我刷新页面的时候,传过来的参数不能丢失,要一直存在,除非我手动关闭这个新窗口,即浏览器的标签页. 通过 ...

  9. vue项目打开新窗口并打印信息

    vue项目打开新窗口 1,vue项目另开一个新的窗口,可传参 let routeData = this.$router.resolve({path: "/consoleOrderDetail ...

最新文章

  1. 如何看待程序媛们的职场焦虑和未来职业规划?
  2. DEMO: 一种单目视觉里程计的深度增强方法
  3. 多模态学习研讨会:预训练是AI未来所需要的全部吗?
  4. MATLAB中深度学习的数据集合
  5. 文本挖掘预处理之向量化与Hash Trick
  6. 玩转oracle 11g(26):误删表数据和误删表回滚
  7. python json dict对象使用_Python中:dict(或对象)与json之间的互相转化
  8. 我的nginx iis 负载均衡学习(环境搭建)
  9. ant接口用什么天线_手机听收音机时,为什么必须用耳机作为天线?
  10. 被腾讯看上,叽里呱啦获近亿美元C轮融资
  11. easyui被activeX控件挡住的解决方法
  12. 黑马博客——详细步骤(六)项目功能的实现之用户信息删除
  13. 知识图谱组队学习Task04——知识库的查询语句
  14. ADO.NET 之 一
  15. OpenCV对图片的读写,像素值的访问,修改
  16. 数据库基础(5)1NF,2NF,3NF,BCNF 四大范式的定义和判别
  17. Line3d安装;bundler+pmvs;opencv_contrib
  18. 面试时,如何正确介绍自己的项目经验?
  19. 开启超高清时代 联诚发5G+8K大屏点亮智慧展厅及银行业
  20. Chart.js使用及ajax获取数据

热门文章

  1. html怎么加断点快捷键,HTML添加断点 - osc_vyztkm1b的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. Win11任务栏颜色如何更改 Win11更改任务栏颜色教程
  3. Win11系统如何隐藏快速搜索
  4. 传授电脑蓝屏开不了机怎么办
  5. 使用TortoiseGit(小乌龟)操作分支的创建
  6. IllegalStateException: No WebApplicationContext found: no Co
  7. js二维数组传递java,ActiveX获取JavaScript传递的二维数组
  8. python打包成exe_Python打包成exe时,再犯这几个错误就说不过去了
  9. 07 - java 方法里面的 return
  10. python getchar,Linux C编程学习:getchar()和getch()