微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

wxEVT_ENTER_WINDOW 不会改变按钮背景颜色

如何解决wxEVT_ENTER_WINDOW 不会改变按钮背景颜色

我希望我的代码在鼠标光标悬停在按钮上时将按钮背景颜色更改为“黄色”,当鼠标光标移出按钮时更改为绿色。

使用 wx.EVT_ENTER_WINDOW 将按钮背景颜色更改为“黄色”,使用 wx.EVT_LEAVE_WINDOW 将背景颜色更改为绿色。

下面是简单的代码,其中包括一个框架和一个按钮。请注意,当鼠标悬停在按钮上时,按钮背景颜色没有变为黄色,但是当鼠标光标移出按钮时,背景颜色变为绿色。因此,当光标位于按钮上方时,我添加了 SetLabel 以显示“INSIDE”,以查看 EVT_ENTER_WINDOW 是否被触发。当我运行代码时,发现当光标位于按钮上时会显示 INSIDE,因此 EVT_ENTER_WINDOW 被触发但背景颜色没有改变。为什么按钮背景颜色没有变化?

import wx
def onMouSEOverButton(event):
    btn.SetBackgroundColour("yellow")
    btn.SetLabel("INSIDE")

def onMouseLeaveButton(event):
    btn.SetBackgroundColour("green")
    btn.SetLabel("OUTSIDE")

app = wx.App()
win = wx.Frame(None,size=(410,335))
win.Show()
btn = wx.Button(win,pos=(50,50))
btn.Bind(wx.EVT_ENTER_WINDOW,onMouSEOverButton)
btn.Bind(wx.EVT_LEAVE_WINDOW,onMouseLeaveButton)
app.MainLoop()

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。