首页 > 其他分享 >electron鼠标经过托盘显示自定义菜单

electron鼠标经过托盘显示自定义菜单

时间:2023-04-24 14:55:43浏览次数:28  
标签:菜单 鼠标 自定义 point trayBounds label electron isLeave

1.自定义菜单

  // 自定义菜单
  var templateMenu = [{
      label: "首页",
      submenu: [{ label: "111" }, { label: '9089' }]
  }, , {
      label: "编辑",
      submenu: [{ label: '123' }]
  }]
  testmenu = Menu.buildFromTemplate(templateMenu);

2. 在鼠标经过托盘事件中展示自定义菜单

//isLeave 是自定义是否鼠标离开字段,默认为true,   tray是托盘
tray.on('mouse-move', () => {
      if (isLeave) {
          //触发mouse-enter
          isLeave = false;
          checkTrayLeave();//检查是否离开
          testmenu.popup();//打开
      }
  })

 3.检查方法

//检查是否离开
function checkTrayLeave(){
    clearInterval(leaveInter)
    leaveInter = setInterval(function(){
        trayBounds = tray.getBounds();
        point = screen.getCursorScreenPoint();
        if(!(trayBounds.x < point.x && trayBounds.y < point.y && point.x < (trayBounds.x + trayBounds.width) && point.y < (trayBounds.y  + trayBounds.height))){//触发mouse-leave
            clearInterval(leaveInter);
            isLeave = true;
            testmenu.closePopup();
        }
    }, 100)
}

 

标签:菜单,鼠标,自定义,point,trayBounds,label,electron,isLeave
From: https://www.cnblogs.com/zhangyouwu/p/17349504.html

相关文章

  • 直播软件app开发,用户自定义头像选择
    直播软件app开发,用户自定义头像选择1.进行主界面的布局activity_main.xml <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  andro......
  • vue3 自定义组件双向绑定(modelValue)
    参考链接:https://huaweicloud.csdn.net/638edf68dacf622b8df8d152.html父组件:<Customabcref="editor"v-model="data.introduction":min-height="400"name="职能"placeholder="请编辑"/>子组件<divclass="tinymc......
  • java token自定义实现
    importcom.example.newsmanager.model.Token;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassTokenUtil{publicstaticfinalStringTOKEN_NAME="token&......
  • electron-builder 打包依赖文件放入指定目录
    1.C:\Users\Liper\AppData\Local\electron-builder\Cache2.nsis-resources-3.4.1.7z3.nsis-3.0.4.1.7z4.winCodeSign-2.6.0......
  • 自定义权限校验方法、基于配置的权限控制、CSRF
    自定义权限校验方法我们也可以定义自己的权限校验方法。在@PreAuthorize注解中使用我们的方法。创建expression包,在该包下创建SGEexpression类@Component("ex")publicclassSGEexpression{publicbooleanhasAuthority(Stringauthority){//获取当前用户......
  • c# 异步进阶———— 自定义 taskschedule[三]
    前言我们知道我们的taskasync和await是基于线程池进行调度的。但是async和await也就是使用了默认的task调度,让其在线程池中运行。但是线程池是榨干机器性能为本质的,但是有时候我们运行一些我们自己的需求,比如控制一下线程数(因为并不是线程数越高,就能有更高的性能),控制一......
  • Springboot yml配置参数加密 ,jasypt自定义解密器
    原文链接:https://www.cnblogs.com/JCcccit/p/16868137.html前言 最近项目组开始关注一些敏感数据的明文相关的事宜,其实这些东西也是都有非常成熟的解决方案。既然最近着手去解决这些事情,那么也顺便给还未了解的大伙普及一下。Springbootyml配置参数数据加密(数据加密篇......
  • Eclipse默认标签TODO,XXX,FIXME和自定义标签[转]
    1TODO表示需要实现,但目前还未实现的功能2XXX勉强可以工作,但是需要改进的功能3FIXME代码是错误的,不能工作,需要修复4.自定义标签window-->preferences-->java-->compiler-->tags选择new,输入tag,选择priority,ok上述所有注释都会被eclipseta......
  • 一统天下 flutter - widget Sliver: SliverPersistentHeader - 自定义可展开/收缩的标
    源码https://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-widgetSliver:SliverPersistentHeader-自定义可展开/收缩的标题栏示例如下:lib\widget\sliver\sliver_persistent_header.dart/**SliverPersistentHeader-自定义可展开/收缩的标题栏......
  • 自定义starter
    将redis生成分布式唯一id的功能封装成starter供其他模块使用1 编写业务类packagecom.yangkun.redis;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.data.redis.core.StringRedisTemplate;importorg.springframework.tran......