1
我正在玩wxPython事件绑定,以便制作拖动算法。不过,我遇到了一个问题,当鼠标不在我的框架上时,事件不会触发。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)