[wxPython-users] source info for buttons

Werner F. Bruhin werner.bruhin at free.fr
Wed Jul 5 08:45:02 PDT 2006


Hi Gabriel,

Gabriel Murray wrote:

> In the wxPython book there is an example of a simple button frame (in 
> the example button.py), where you click on the button and the button 
> label changes to 'clicked'. If you have two buttons and you want the 
> same result, i.e . the label to change on whichever button you click, 
> how can you do this without defining two separate OnClick methods for 
> the two buttons?
>
> For example:
>
> self.button = wx.Button(panel, -1, "Hello", pos=(50,20))
> self.Bind(wx.EVT_BUTTON, self.OnClick, self.button)
> self.button.SetDefault()
> self.button2 = wx.Button(panel, -1, "Hello", pos=(150,20))
> self.Bind(wx.EVT_BUTTON, self.OnClick, self.button2)
> self.button2.SetDefault()
>
> def OnClick(self,event):
>     self.button.SetLabel("Clicked")

what about something like this:
    def OnClick(self, event):
       obj = event.GetEventObject()
       text = obj.GetLabel() + ' - Clicked'
       obj.SetLabel(text)

This is untested.

Werner

>
>
> ######
> This will only change the first button regardless of which button was 
> the source of the click. How do I pass source information to the 
> OnClick method so that it can change the label of the button that was 
> pressed?
> Thanks,
> Gabriel






More information about the wxpython-users mailing list