wxEVT_ENTER_WINDOW 不会改变按钮背景颜色

时间:2021-05-09 14:10:16

标签: wxpython

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

使用 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()

谢谢

0 个答案:

没有答案