wxPython:进入 child 控件时调用 wx.EVT_LEAVE_WINDOW
wxPython: wx.EVT_LEAVE_WINDOW is called when entering a child control
我正在尝试绑定事件以仅当鼠标出现在 window 上时增加不透明度,但是当鼠标悬停在 child 控件上时不透明度会降低
self.Bind(wx.EVT_ENTER_WINDOW, self.SetOpaque)
self.Bind(wx.EVT_LEAVE_WINDOW, self.SetSemiTransparent)
有没有 wx.EVT_LEAVE_WINDOW
的替代方案,当悬停在 child 上时不会触发?
示例:
将鼠标悬停在按钮或文本框上会导致不透明度下降(如 SetSemiTransparent
中所定义):
触发这些事件的是 OS,而不是 wxWidgets。
在 wx.EVT_LEAVE_WINDOW
的父级处理程序中查找当前鼠标坐标是在子级内部还是在父级外部。
要测试一个点是否在 window 内,您可以使用 wx.HitTest
.
wx.HitTest
的例子
class SomeFrame(wx.Frame):
def __init__(self):
super().__init__(None, style=wx.NO_BORDER)
self.Bind(wx.EVT_LEAVE_WINDOW, self.SomeEventHandler)
def SomeEventHandler(self, event):
if self.HitTest(event.Position) == wx.HT_WINDOW_OUTSIDE:
#Process some event.
pass
另请参阅:
我正在尝试绑定事件以仅当鼠标出现在 window 上时增加不透明度,但是当鼠标悬停在 child 控件上时不透明度会降低
self.Bind(wx.EVT_ENTER_WINDOW, self.SetOpaque)
self.Bind(wx.EVT_LEAVE_WINDOW, self.SetSemiTransparent)
有没有 wx.EVT_LEAVE_WINDOW
的替代方案,当悬停在 child 上时不会触发?
示例:
将鼠标悬停在按钮或文本框上会导致不透明度下降(如 SetSemiTransparent
中所定义):
触发这些事件的是 OS,而不是 wxWidgets。
在 wx.EVT_LEAVE_WINDOW
的父级处理程序中查找当前鼠标坐标是在子级内部还是在父级外部。
要测试一个点是否在 window 内,您可以使用 wx.HitTest
.
wx.HitTest
的例子class SomeFrame(wx.Frame):
def __init__(self):
super().__init__(None, style=wx.NO_BORDER)
self.Bind(wx.EVT_LEAVE_WINDOW, self.SomeEventHandler)
def SomeEventHandler(self, event):
if self.HitTest(event.Position) == wx.HT_WINDOW_OUTSIDE:
#Process some event.
pass
另请参阅: