python 捕获鼠标点击事件,在Python中的wx.Frame外部捕获鼠标事件

In Python using wxPython, how can I set the transparency and size of a window based on the proximity of the mouse relative to the application's window, or frame?

Eg. similar to a hyperbolic zoom, or The Dock in MAC OS X? I am trying to achieve this effect with a png with transparency and a shaped window.

Any libraries or code snippets that do this would be great too. Thanks.

解决方案

Here's code to do it. Basically uses the approach mentioned by Infinity77. Tested on Windows. Works nicely!

import wx

MIN_ALPHA = 64

MAX_ALPHA = 255

class Frame(wx.Frame):

def __init__(self):

super(Frame, self).__init__(None)

self.alpha = MAX_ALPHA

self.SetTitle('Mouse Alpha')

self.on_timer()

def on_timer(self):

x, y, w, h = self.GetRect()

mx, my = wx.GetMousePosition()

d1 = max(x - mx, mx - (x + w))

d2 = max(y - my, my - (y + h))

alpha = MAX_ALPHA - max(d1, d2)

alpha = max(alpha, MIN_ALPHA)

alpha = min(alpha, MAX_ALPHA)

if alpha != self.alpha:

self.SetTransparent(alpha)

self.alpha = alpha

wx.CallLater(20, self.on_timer)

if __name__ == '__main__':

app = wx.App(None)

frame = Frame()

frame.Show()

app.MainLoop()

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

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

相关文章

linux cordova安装教程,cordova搭建环境

cordova搭建环境一、配置java环境变量1.安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。(不能都安装在java文件夹的根目录下,jdk和jre安装在同一文件夹…

安卓rpg绅士游戏资源_海贼无双3(动作游戏)——电脑安卓单机游戏下载资源分享...

点击上方蓝字关注我们01游戏简介:游戏名称:海贼无双3其它名称:One Piece - Pirate Warriors 3游戏类型:动作游戏开发发行:Omega Force游戏平台:PC整理时间:2020-04-25官方网址:http:…

linux分区始柱号,找到了linux分区顺序错乱修复方法

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼我之前安装ARCH时 因为自带的CFDISK工具太烂使用了主流的FDISK和PARTED 都远远不如DISKPART满意 功能弱不说最重要的就是莫名奇妙的错误超级多 错误提示还少甚至没有 让人郁闷到极限尤其是parted 因为没光驱 硬盘安装 之前又是WIND…

11210怎么等于24_想要消耗100大卡热量,怎么做才最简单?

减肥,最根本的原理就是制造热量差,从饮食上限制热量的摄入,调理体质让基础代谢更高,运动来进一步增加消耗,当热量差达到7000大卡左右的时候,就能瘦下来1kg的纯脂肪!美食当前,自然要先…

连接linux工具Mtr,Linux常用网络工具:路由扫描之mtr

除了上一篇《Linux常用网络工具:路由扫描之traceroute》介绍的traceroute之外,一般Linux还内置了另一个常用的路由扫描工具mtr。mtr在某些方面比traceroute更好用,它可以实时显示经过的每一跳路由的信息,并不断进行探测。tracerou…

redis rua解决库存问题_【150期】面试官:Redis的各项功能解决了哪些问题?

点击上方“Java面试题精选”,关注公众号面试刷图,查缺补漏>>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅阶段汇总集合:一百期面试题汇总先看一下Redis是一个什…

启动盘Linux windows,Linux 中创建 USB 启动盘来拯救 Windows 用户

人们经常要求我帮助他们恢复被锁死或损坏的 Windows 电脑。有时,我可以使用 Linux USB 启动盘来挂载 Windows 分区,然后从损坏的系统中传输和备份文件。有的时候,客户丢失了他们的密码或以其他方式锁死了他们的登录账户凭证。解锁账户的一种方…

vue验证整数_前端Vue中常用rules校验规则

前端Vue中常用rules校验规则1、是否合法IP地址export function validateIP(rule, value,callback) {if(value||valueundefined||valuenull){callback();}else{const reg /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\![](https://user-gold-cdn.xit…

linux make编译报错 mv,Linux下安装redis

1:首先下载redis http://redis.io/download2: 需要Linux安装gcc依赖3:进行解压 tar -zxvf redis-3.0.0-rc2.tar.gz4:进入到redis-3.0.0目录下,进行编译 make (如果make编译报错 可直接用 make MALLOClibc 解决)5:…

c#中connect函数_C#.NET 各种连接字符串

1.C#连接连接Access程序代码:using System.Data;using System.Data.OleDb;..string strConnection"ProviderMicrosoft.Jet.OleDb.4.0;";strConnection"Data SourceC:BegASPNETNorthwind.mdb";OleDbConnection objConnectionnew OleDbConnectio…

echarts里面的参数解释_Echarts适用小技巧:适用参数详细说明及示例-TS文件

点击右上方红色按钮关注“web秀”,让你真正秀起来前言前面有文章,讲述了Vue中封装Echarts组件,但都是直接上代码,没有具体对代码进行讲述。今天我们就来看看,如何使Echarts图表更美观,都是那部分属性使其更…

linux桌面版自动更新关闭了,桌面应用|开启 Ubuntu 系统自动升级

在学习如何开启Ubuntu系统自动升级之前,先解释下为什么需要自动升级。默认情况下,ubuntu每天一次检查更新。但是一周只会弹出一次软件升级提醒,除非当有安全性升级时,才会立即弹出。所以,如果你已经使用Ubuntu一段时间…

做自适应网站专业乐云seo_什么叫网站优化-网站建设-SEO优化

公司致力于企业品牌营销策划、网站建设、网站优化、五网竞价推广、商城建设、小程序开发、搜索引擎推广、SEO及企业品牌整合营销、全网整合营销霸屏推广等专业一站式网络全包服务。为不同企业品牌量身定制合适的设计方案,提供专业一站式网站服务平台、网络广告投放平…

linux native分区,怎么将硬盘格式分区为Linux Native格式的

根据目前流行的操作系统来看,常用的分区格式有四种,分别是FAT16、FAT32、NTFS和Linux。资格最老的当然就是FAT16啦,这是MS-DOS和最早期的Windows 95操作系统中最常见的磁盘分区格式。它采用16位的文件分配表,而且是目前…

跨域会报40几_关于跨域,以及跨域的几种方式

首先我们来想一想为什么会有跨域这个名词的出现呢?跨域又是什么呢?为何要跨域?浏览器的同源策略又是什么?怎么解决?jsonp又是什么?跨域的原理又是什么呢?名词解释:跨域:浏览器对于javascript的同源策略的限制,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和…

linux用户的配置文件保存在哪里,使用配置文件(.settings、.config)存储应用程序配置...

引言我不知大家早先是如何保存应用程序配置,以备下次打开时使用的,反正我开始学.Net的时候就去研究序列化,以二进制或XML格式的序列化来保存应用程序配置。这样每次都要建立单独的配置类,并书写读写配置代码,相当麻烦。…

python如何画图设置坐标轴_python matplotlib坐标轴设置的方法

在使用matplotlib模块时画坐标图时,往往需要对坐标轴设置很多参数,这些参数包括横纵坐标轴范围、坐标轴刻度大小、坐标轴名称等在matplotlib中包含了很多函数,用来对这些参数进行设置。我们可以对坐标轴进行设置,设置坐标轴的范围…

linux比较厉害的运维项目,Linux运维项目实战系列

ORACLE 博客文章目录(2015-05-27更新)从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理 ...Login控件尝试新建we…

awk 内嵌正则 提取字符串_使用awk提取字符串中的数字或字母

1.提取字符串中的数字$ echo dsFUs34tg*fs5a%8ar%$# |awk -F "" {for(i1;i<NF;i){if ($i ~ /[[:digit:]]/){str$istr1(str1 str)}}print str1}输出3458或$ echo dsFUs34tg*fs5a%8ar%$# |awk -F "" {for(i1;i<NF;i){if ($i ~ /[0-9]/){str$istr1(str1…

mysql中字符串拼接函数_MySQL字符串连接函数

一、CONCAT(str1,str2,…)返回结果为连接参数产生的字符串。如有任何一个参数为NULL &#xff0c;则返回值为 NULL。select concat(s_id, "--", s_bar_code) from t_storage_order_detail WHERE s_sn LIKE %R2016091200002% LIMIT 0, 1000;-------------------------…