Я играю с привязками событий 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)