2010-02-16 22 views
5

इस कोड:माउसओवर पर wx.Panel पृष्ठभूमि रंग कैसे बदलें?

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' 

क्या मैं गलत कर रहा हूँ:

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

मुझे त्रुटि देता है? पीएस .: मुझे इस वर्ग को wx.Panel के रूप में रखना होगा!

अग्रिम धन्यवाद

उत्तर

12

में विधि SetBackgroundColour नाम पर है, एक यू के साथ।

इसके अलावा, आप दो अलग-अलग तरीकों से दो बार घटनाओं को बाध्य कर रहे हैं। बस self.Bind शैली का उपयोग करें, और अन्य दो पंक्तियों को हटाएं।

+0

ओएमजी, धन्यवाद एम 8 लॉल :( –

संबंधित मुद्दे