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

6f6d5c74edd078f841a5ad3176e0f957.png

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

前三篇文章传送门

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

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

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

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

4d28762a1c5f5fc99c4df3f4b3c00253.png

fc4818d5dfe5705f9113e9cccb2d66c7.png

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

1.去掉外边框

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

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

这样窗口就会变成这样:

5fe9350ea7a0c99cc8b6e716e7e7f819.png

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

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')
}

接下来我们看下效果

24ebe1d685e481fc71b710e297e4cf24.png

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

string 包含_一文搞懂String常见面试题,从基础到实战,到原理分析和源码解析...

01 string基础1.1 Java String 类字符串广泛应用 在 Java 编程中&#xff0c;在 Java 中字符串属于对象&#xff0c;Java 提供了 String 类来创建和操作字符串。1.2 创建字符串创建字符串最简单的方式如下:String greeting "菜鸟教程";在代码中遇到字符串常量时&…

RPN网络在图像处理中的应用

RPN&#xff08;Region Proposal Network&#xff0c;区域建议网络&#xff09;是深度学习中用于目标检测的关键组件之一&#xff0c;它通常与后续的目标检测网络&#xff08;如Fast R-CNN、Faster R-CNN等&#xff09;结合使用。RPN的主要作用是生成候选目标区域&#xff0c;从…

pythonwhile爬虫教程_Python 爬虫从入门到进阶之路(十一)

之前的文章我们介绍了一下 Xpath 模块&#xff0c;接下来我们就利用 Xpath 模块爬取《糗事百科》的糗事。之前我们已经利用 re 模块爬取过一次糗百&#xff0c;我们只需要在其基础上做一些修改就可以了&#xff0c;为了保证项目的完整性&#xff0c;我们重新再来一遍。我们通过…

阿联酋esma认证怎么做_百度爱采购企业认证是怎么做的?这些你要知道!

入驻百度爱采购的企业可以获得认证标识&#xff0c;这个标识是企业品牌树立的重要表现&#xff0c;在产品展示页面和百度首页搜索企业名称都有企业信息的醒目展示&#xff0c;并且可以直接跳转到企业店铺&#xff0c;为企业带来流量的同时&#xff0c;还能进行品牌的宣传。百度…

人脸离线识别模块_人脸消费机离线刷脸如何实现?

随着越来越多刷卡刷脸一卡通的设备出现。大家在享受一卡通的便利的同时。也在考虑人脸消费机的基本功能和安全属性&#xff0c;人脸消费机&#xff0c;是指人脸在消费访客管理方面的相关。在人脸刷脸进行消费的时候是一下几个阶段1.人脸特征提取首先得先让人脸消费机看到你的脸…

junit版本_Junit-jupiter-api 和 junit-jupiter-engine 的区别是什么

我们都知道 JUnit 是用于进行单元测试的。但是 Junit 5 和 Junit 4 的区别比较大。 很多时候你可能会遇到 Junit 引擎配置错误导致测试无法进行。junit-jupiter-api JUnit 5 Jupiter API 的测试&#xff0c;你需要使用这个 API 来写测试和进行扩展。junit-jupiter-engine JUnit…

mysql数据库基础简介_MySql数据库基础之数据库简介及安装

MySql数据库简介&#xff1a;众所周知&#xff0c;MySql数据库是一款开源的关系型数据库&#xff0c;在Web应用方面&#xff0c;MySql是最好的、最流行的RDBMS(Relational Database Management System,关系型数据库管理系统)应用软件。MySql的4大特点&#xff1a;1.MySql是开源…

Java访问控制修饰符详解

在 Java 语言中提供了多个作用域修饰符&#xff0c;其中常用的有 public、private、protected、final、abstract、static、transient 和 volatile&#xff0c;这些修饰符有类修饰符、变量修饰符和方法修饰符。 在实际生活中&#xff0c;如果要获取某件物品&#xff0c;与其直接…

为资产分类定义折旧范围_RFID固定资产管理系统方案

项目介绍随着经济的不断发展&#xff0c;企业的规模日益壮大&#xff0c;固定资产管理作为企业资产管理最要的一部分&#xff0c;一直是企业关注的难题。由于固定资产具有价值高&#xff0c;使用周期长、使用地点分散的特点、相关责任人员多&#xff0c;在实际工作中不容易做到…

ssh中c3p0连接mysql_JSP+SSH+Mysql+C3P0实现的传智播客网上商城

项目简介本系统是传智播客授课时的开发案例&#xff0c;基于JSPSSHMysql的简单网上商城。在当代开发中&#xff0c;SSH的使用已经逐渐被SSM取代&#xff0c;但不代表我们不需要学习SSH&#xff0c;该系统简单&#xff0c;但功能齐全可以作为SSH框架初学者的入门项目。难度等级&…

zabbix配置mysql监控_【zabbix】zabbix配置MySQL监控

说明&#xff1a;除最后的测试步骤之外&#xff0c;以下操作均在zabbix的agent端(被监控端)执行一、环境准备&#xff1a;1、操作系统&#xff1a;CentOS 5.6 (zabbix server端)CentOS 5.6 (zabbix agent端)2、数据库&#xff1a;MySQL 5.6 (安装在agent端的数据库)3、软件&…

北信源管理网页卸载密码_Homebrew: 一行代码实现mac软件管理

Homebrew是一款帮助我们管理软件的软件。任何开源软件都可以通过Homebrew的一行代码完成软件的下载、升级或卸载等。目前Homebrew主要适用macOS或Linux系统。(Windows系统下的类似软件叫Chocolatey&#xff0c;功能相近&#xff0c;使用方法类似。详情请见https://chocolatey.o…

java集合基础_java常用集合基础知识

【纯出自个人笔记&#xff0c;如有错误&#xff0c;望改正&#xff0c;谢谢哈!学习~】一、Java集合1、集合类&#xff1a;容器类 装对象的(不能存放基本数据类型&#xff0c;但是里面看到的其实是包装类型)java.util包ArrayList底层是一个对象数组----------------------------…

java cookie安全_cookie的安全性问题

HTTP协议&#xff1a;(1)请求组成部分&#xff1a;请求行&#xff1a;(get或者post请求&#xff1b;请求路径(不包括主机) &#xff1b;http1.1)请求头&#xff1a;请求头是浏览器交给服务器的一些信息(比较cookie啥的)请求体&#xff1a;只有post请求有请求体&#xff0c;get请…

java幻灯片播放代码_简单常用的幻灯片播放实现代码

幻灯片自动播放图片是当前网站比较流行的一个展示方式。在网上我们能找到各种特效丰富的幻灯片插件和代码。这里项目需要&#xff0c;我自己做了一个简单的&#xff0c;就不详细讲解了&#xff0c;代码很简单。直接看效果图和代码吧。所有代码 ppt.html&#xff0c;需要提供相应…

ssms没有弹出服务器验证_powerbi报表服务器搭建链接

作品展示​www.chinapowerbi.com安装 Power BI 报表服务器所要满足的硬件和软件要求 - Power BI​docs.microsoft.comDownload 用于基于 x64 的系统的 Windows 8.1 更新程序 (KB2919442) from Official Microsoft Download Center​www.microsoft.comDownload Windows Server 2…

groovy java_在java中使用groovy怎么搞

临摹微笑一种基于Java虚拟机的动态语言&#xff0c;可以和java无缝集成&#xff0c;正是这个特性&#xff0c;很多时候把二者同时使用&#xff0c;把groovy作为java的有效补充。对于Java程序员来说&#xff0c;学习成本几乎为零。同时支持DSL和其他简介的语法(例如闭包)&#x…

mysql 类似wm concat_oracle的wm_concat()和mysql的group_concat()合并同列变成一行的用法以及和concat()合并不同列的区别...

前言标题几乎已经说的很清楚了&#xff0c;在oracle中&#xff0c;concat()函数和 “ || ” 这个的作用是一样的&#xff0c;是将不同列拼接在一起&#xff1b;那么wm_concat()是将同属于一个组的(group by)同一个字段拼接在一起变成一行。mysql是一样的&#xff0c;只不过mysq…

试图将驱动程序添加到存储区_基于容器的块存储使用

什么是块存储&#xff1f;分布式存储系统&#xff0c;为业务与数据在集群内漂移提供了自由保障&#xff0c;满足企业对于不受约束的系统环境要求。同时&#xff0c;平台仅保存迁移被改动的数据&#xff0c;而非整体增加数据量&#xff0c;实现增量备份。魔方云块存储的功能&…

如何编译和运行C++程序?

C 和C语言类似&#xff0c;也要经过编译和链接后才能运行。那么C是如何运行的呢&#xff0c;C和C的运行步骤是一样的。我们需要留意的是C源文件的后缀&#xff0c;以及GCC 中的g命令。 下图是 C/C 代码生成可执行文件的过程&#xff1a; C源文件的后缀 C语言源文件的后缀非…