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)