Как изменить wx. Цвет фона панели на MouseOver?

этот код:

import wx

app = None

class Plugin(wx.Panel):
    def __init__(self, parent, *args, **kwargs):
        wx.Panel.__init__(self, parent, *args, **kwargs)
        self.SetBackgroundColour((11, 11, 11))
        self.name = "plugin"

        self.Bind(wx.EVT_ENTER_WINDOW, self.onMouseOver)
        self.Bind(wx.EVT_LEAVE_WINDOW, self.onMouseLeave)

        wx.EVT_ENTER_WINDOW(self, self.onMouseOver)
        wx.EVT_LEAVE_WINDOW(self, self.onMouseLeave)

    def onMouseOver(self, event):
        self.SetBackgroundColor((179, 179, 179))
        self.Refresh()

    def onMouseLeave(self, event):
        self.SetBackgroundColor((11, 11, 11))
        self.Refresh()

    def OnClose(self, event):
        self.Close()
        app.Destroy()

    def name():
        print self.name


app = wx.App()
frame = wx.Frame(None, -1, size=(480, 380))
Plugin(frame)
frame.Show(True)
app.MainLoop()

дает мне ошибку:

Traceback (most recent call last):
  File "C:\.... ... ....\plugin.py", line 18, in onMouseOver
    self.SetBackgroundColor((179, 179, 179))
AttributeError: 'Plugin' object has no attribute 'SetBackgroundColor'

Что я делаю неправильно? P.S.: у Меня должен быть этот класс как wx. Панель!

Заранее спасибо

5
задан Nate C-K 10 December 2014 в 19:15
поделиться

1 ответ

Метод называется SetBackgroundColour с буквой u.

Кроме того, вы дважды связываете события двумя разными методами. Просто используйте стиль self.Bind и удалите две другие строки.

12
ответ дан 13 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: