Mac*_*chu 4 wxpython proximity mouseevent shaped-window
在使用wxPython的Python中,如何根据鼠标相对于应用程序窗口或框架的接近程度来设置窗口的透明度和大小?
例如.类似于双曲线缩放,还是MAC OS X中的Dock?我试图用透明度和形状窗口的png实现这种效果.
任何执行此操作的库或代码片段都会很棒.谢谢.
这是执行此操作的代码.基本上使用Infinity77提到的方法.在Windows上测试过.很好用!
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()
Run Code Online (Sandbox Code Playgroud)