# # Python GUI - Radio buttons - Generic # from GUI.Properties import overridable_property from GUI import Control class RadioButton(Control): """RadioButtons are used in groups to represent a 1-of-N choice. A group of RadioButtons is coordinated by a RadioGroup object. The 'group' property indicates the RadioGroup to which it belongs, and the 'value' property is the value to which the RadioGroup's value is set when this RadioButton is selected.""" group = overridable_property('group', """The RadioGroup to which this radio button belongs.""") value = overridable_property('value', """The value to which the associated radio group's 'value' property should be set when this radio button is selected.""") _group = None _value = None # # Properties # def get_group(self): return self._group def set_group(self, new_group): old_group = self._group if new_group is not old_group: if old_group: old_group._remove_item(self) self._group = new_group if new_group: new_group._add_item(self) def get_value(self): return self._value def set_value(self, new_value): old_value = self._value if new_value != old_value: self._value = new_value self._value_changed() def _value_changed(self): raise NotImplementedError