我正在尝试绑定事件,以便仅在鼠标悬停在窗口上时才增加不透明度,但是,只要鼠标悬停在子控件上,不透明度就会降低
self.Bind(wx.EVT_ENTER_WINDOW, self.SetOpaque)
self.Bind(wx.EVT_LEAVE_WINDOW, self.SetSemiTransparent)
有没有wx.EVT_LEAVE_WINDOW
的替代品,当鼠标悬停在孩子身上时不会触发?
示例:
将鼠标悬停在按钮或文本框上会导致不透明度下降(如SetSemiTransparent
中所定义):
发布于 2018-07-12 20:46:07
触发这些事件的是操作系统,而不是wxWidgets。
在父级的wx.EVT_LEAVE_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
另请参阅:
https://stackoverflow.com/questions/51298661
复制相似问题