[wxPython-users] source info for buttons
Gabriel Murray
gabriel.murray at gmail.com
Wed Jul 5 08:26:31 PDT 2006
Thanks, that works perfect!
Gabriel
On 7/5/06, Simon Clay <simon.clay at imperial.ac.uk> wrote:
>
> On Wed, Jul 05, 2006 at 03:28:16PM +0100, 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 =3D wx.Button(panel, -1, "Hello", pos=3D(50,20))
> > self.Bind(wx.EVT_BUTTON, self.OnClick, self.button)
> > self.button.SetDefault()
> > self.button2 =3D wx.Button(panel, -1, "Hello", pos=3D(150,20))
> > self.Bind(wx.EVT_BUTTON, self.OnClick, self.button2)
> > self.button2.SetDefault()
> > def OnClick(self,event):
> > self.button.SetLabel("Clicked")
> > ######
>
> The wx.Event object holds data about the control that posted the event.
> The GetEventObject method returns the object, so all you need to do is
> change your OnClick method to:
>
> def OnClick(self,event):
> event.GetEventObject().SetLabel("Clicked")
>
> As an aside, you appear to be using absolute positioning to lay out your
> controls. I'd suggest that, unless you have a good reason to use it, you
> take a look at sizers before you try to lay out anything non-trivial.
>
> Simon.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wxPython-users-unsubscribe at lists.wxwidgets.org
> For additional commands, e-mail: wxPython-users-help at lists.wxwidgets.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.wxwidgets.org/pipermail/wxpython-users/attachments/200607=
05/e7904dd0/attachment.htm
More information about the wxpython-users
mailing list