wxPython default radiobox choice
crystalattice
crystalattice at gmail.com
Thu Aug 24 17:42:15 EDT 2006
Laszlo Nagy wrote:
> crystalattice írta:
> > In my GUI app, I have a radio box allowing the user to pick his/her
> > gender. When I click a button, I'd like the radio box to tell the
> > program which choice is marked. I can get it to work when I manually
> > pick a choice but I get an error when the choice is left at the default
> > value, which is "Male".
> >
> > I have the radio box tied to an event to "see" when a choice is made,
> > but how does it work if the person just leaves the default value? I've
> > looked at the wxPython demo but the radio box actions only work for
> > changing values.
> >
> >
> I'm not sure if I understood your problem. You can call the
> wxRadioBox.GetSelection method anytime to get the current value.
> If you need that value very often (e.g. thousand times per sec) then you
> can "shadow" the default value in an instance variable.
>
> Example (untested):
>
>
> class MyClass(wx.Frame):
> """In this frame, you can use the curchoice variable after
> construction."""
> def __init__(self):
> # ... create your frame here...
> r =self.radio = wx.RadioBox(self,-1,choiches=['One','Two','Three'])
> # Set default value
> r.SetSelection(0) # This does not cause a
> wxEVT_COMMAND_RADIOBOX_SELECTED event to get emitted.
> self.curchoice = 0
> # Bind the event
> r.Bind(
> wx.EVT_COMMAND_RADIOBOX_SELECTED,
> self.OnRadioChanged,
> r
> )
>
>
> def OnRadioChanged(self,event):
> self.curchoice = self.radio.GetSelection()
> # Do whatever you want here...
> event.Skip()
Thanks for the response. I got it working now. I was trying to bind
the radio box to an event, rather than just calling GetSelection(). I
thought I needed to bind it to make it work (based on the wxPython demo
code).
More information about the Python-list
mailing list