import wx
class MyFrame(wx.Frame):
"""Frame with Panel and one Button, inherits wx.Frame"""
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, 'Move mouse over button',
size=(350, 150))
self.panel = wx.Panel(self)
self.butn1 = wx.Button(self.panel, label="Up", pos=(125, 15))
self.butn2 = wx.Button(self.panel, label="Dow", pos=(125, 50))
# get original colour
self.colour = self.butn1.GetBackgroundColour()
self.butn1.Bind(wx.EVT_BUTTON, self.onButtonClick)
self.butn2.Bind(wx.EVT_BUTTON, self.onButton1Click)
self.butn1.Bind(wx.EVT_ENTER_WINDOW, self.onMouseOver)
self.butn1.Bind(wx.EVT_LEAVE_WINDOW, self.onMouseLeave)
self.butn2.Bind(wx.EVT_LEAVE_WINDOW, self.onMouseLeave2)
def onButtonClick(self, event):
# do something ...
#self.panel.SetBackgroundColour('Yellow')
self.butn1.SetBackgroundColour('Blue')
self.panel.Refresh()
def onButton1Click(self, event):
# do something ...
#self.panel.SetBackgroundColour('Yellow')
self.butn2.SetBackgroundColour('Blue')
self.panel.Refresh()
def onMouseOver(self, event):
# mouseover changes colour of button
self.butn1.SetBackgroundColour('Green')
btn(1)
#event.Skip()
def onMouseLeave(self, event):
# mouse not over button, back to original colour
self.butn1.SetBackgroundColour(self.colour)
#event.Skip()
btn(0)
def onMouseLeave2(self, event):
# mouse not over button, back to original colour
self.butn2.SetBackgroundColour(self.colour)
event.Skip()
def btn(bt):
for i in xrange (10):
if bt==1:
print 'over'
# test it ...
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = MyFrame(parent=None, id=-1)
frame.Show()
app.MainLoop()