【发布时间】:2011-02-04 08:24:52
【问题描述】:
我正在使用 wxPython 事件绑定来制作拖动算法。但是我遇到了一个问题,当鼠标不在我的框架上时,事件不会触发。
这成为一个问题,当拖动时看到鼠标似乎离开了框架(就像用户快速移动它一样),框架忽略更新它的位置。
有没有办法改变绑定,即使鼠标不在相关框架上也能触发?
片段:
self.Bind(wx.EVT_LEFT_DOWN, self.relative_mouse_position)
self.Bind(wx.EVT_LEFT_UP, self.wid_unbind)
片段:
def relative_mouse_position (self, event):
cx, cy = wx.GetMousePosition()
x, y = self.GetPosition()
RelX = cx - x
RelY = cy - y
self.Bind(wx.EVT_MOTION, lambda event: self.wid_drag(event, RelX, RelY))
def wid_drag (self, event, RelX, RelY):
cx, cy = wx.GetMousePosition()
x = cx - RelX
y = cy - RelY
if x < 0:
x = 0
if y < 0:
y = 0
self.SetPosition((x, y))
def wid_unbind (self, event):
self.Unbind(wx.EVT_MOTION)
【问题讨论】:
标签: python events binding wxpython