我希望我的代码在鼠标光标悬停在按钮上时将按钮背景颜色更改为“黄色”,当鼠标光标移出按钮时更改为绿色。
使用 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()
谢谢