gpt4 book ai didi

python - wxPython 绑定(bind)问题

转载 作者:行者123 更新时间:2023-12-01 06:12:42 24 4
gpt4 key购买 nike

我正在使用 wxPython 事件绑定(bind)来制作拖动算法。但是我遇到了一个问题,当鼠标不直接位于我的框架上时,事件不会触发。

当拖动时,这会成为一个问题,就像鼠标逃离框架一样(就像用户快速移动它一样),框架会忽略更新其位置。

无论如何,是否可以更改绑定(bind),以便即使鼠标不在相关框架上,它们也会触发?

片段:

    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)

最佳答案

当您开始拖动时,请调用 CaptureMouse将鼠标锁定到您正在拖动的窗口。

关于python - wxPython 绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4895919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com