当前位置: 首页 > news >正文

electron仿微信,新建贴合窗口

说明

在写electron项目时,只有一个主窗口不足以满足需求,我们通常还会打开很多个窗口。
怎么打开一个子窗口像微信的聊天界面一样,全贴合在一起,看起来像一个整体呢:
在这里插入图片描述

分析

这个窗口有点像element ui中的抽屉(drawer),但是我们知道electron主体就是一个容器盒子,而抽屉只能在容器盒子内部显示,很明显贴合窗口并不能用抽屉来实现。
那么久只能新建一个窗口了,需要考虑以下几点:

  • 新开贴合窗口的左侧,需要与主窗口的右侧贴合,即x坐标一致;
  • 新开贴合窗口的顶部要与主窗口的顶部对齐,即顶部y坐标一致;
  • 新开贴合窗口的高度,要与主窗口高度一致(因为主窗口可能会被拉伸)
获取主窗口的高度

此处的height是主窗口高度,在触发ipcMain.on事件时,把高度赋值给贴合窗口的高度

const [ width, height ] = mainWindow.getSize();
计算坐标

假设主窗口名为mainWindow,那么获取x,y坐标,赋值给新建的贴合窗口

x: mainWindow.getPosition()[0] + mainWindow.getSize()[0], // 位置在主窗口右侧
y: mainWindow.getPosition()[1],
关键代码

新建贴合窗口:

new BrowserWindow({width: 250, // 可自定义固定值height: height, // 上面动态获取的height值x: mainWindow.getPosition()[0] + mainWindow.getSize()[0],y: mainWindow.getPosition()[1],autoHideMenuBar: true,resizable: false,titleBarStyle: 'hidden',frame: true,transparent: true,hasShadow: false,backgroundColor: '#F7F7F7',webPreferences: {preload: join(__dirname, '../preload/index.js'),sandbox: false,contextIsolation: false}
})
效果图

在这里插入图片描述

http://www.lryc.cn/news/429928.html

相关文章:

  • uniapp微信小程序 分享功能
  • Java实现数据库数据到Excel的高效导出
  • python之matplotlib (8 极坐标)-圆与心
  • Kubernetes Pod调度基础
  • 80页WORD方案深入了解大数据治理+大数据资产管理+数据运营
  • OCC安装、VS2019编译运行(新手教程)
  • Mojo 实现排序功能
  • 信息学奥赛一本通编程启蒙题解(3031~3035)
  • 字符函数内存函数———C语言
  • c语言跨文件传输数据
  • 企业文件防泄密怎么做?10款透明加密软件排行榜
  • AI编程工具的力量:以AWS Toolkit与百度Comate为例,加速程序员开发效率
  • smallpdf: 免费高效的PDF水印添加工具
  • java整合modbusRTU与modbusTCP
  • 四、Docker使用
  • 杰发科技AC7840——CAN通信简介(8)_通过波特率和时钟计算SEG_1/SEG_2/SJW/PRESC
  • 开发日记-EaxyExcel修改模板sheet名称
  • 微软AI人工智能认证有哪些?
  • 基于缓存提高Java模板文件处理性能:减少磁盘I/O的实践与探索
  • C/C++ 线程局部存储(TLS)
  • 碰撞检测 | 基于ROS Rviz插件的多边形碰撞检测仿真平台
  • nginx实验
  • 新技术能够区分真实照片和 AI 伪造图片,但为何平台没有使用?|TodayAI
  • 测量 Redis 服务器的固有延迟
  • 【JVM】JVM内存模型与操作系统内存模型(一)
  • 构建基于LLM的应用程序——为您的应用程序选择合适的LLM
  • raksmart站群服务器多IP配置要求
  • 【Web IDE】WebContainer容器在浏览器中启动运行nodejs并使用vite启动项目
  • Linux 多线程
  • C语言编写三子棋游戏:从概念到思路到实现