首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >wxPython:进入子控件时调用wx.EVT_LEAVE_WINDOW

wxPython:进入子控件时调用wx.EVT_LEAVE_WINDOW
EN

Stack Overflow用户
提问于 2018-07-12 14:29:14
回答 1查看 363关注 0票数 0

我正在尝试绑定事件,以便仅在鼠标悬停在窗口上时才增加不透明度,但是,只要鼠标悬停在子控件上,不透明度就会降低

代码语言:javascript
复制
    self.Bind(wx.EVT_ENTER_WINDOW, self.SetOpaque)
    self.Bind(wx.EVT_LEAVE_WINDOW, self.SetSemiTransparent)

有没有wx.EVT_LEAVE_WINDOW的替代品,当鼠标悬停在孩子身上时不会触发?

示例:

将鼠标悬停在按钮或文本框上会导致不透明度下降(如SetSemiTransparent中所定义):

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-12 20:46:07

触发这些事件的是操作系统,而不是wxWidgets。

在父级的wx.EVT_LEAVE_WINDOW处理程序中,查找当前鼠标坐标是在子级内还是在父级之外。

要测试点是否在窗口内,可以使用wx.HitTest

wx.HitTest示例

代码语言:javascript
复制
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

另请参阅:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51298661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档