PyGTK - Clase RadioButton
Un solo widget RadioButton ofrece una funcionalidad similar a CheckButton. Sin embargo, cuando hay más de un botón de opción en el mismo contenedor, el usuario tiene disponible una opción mutuamente excluyente para elegir entre una de las opciones disponibles. Si todos los botones de opción del contenedor pertenecen al mismo grupo, cuando se selecciona uno, los demás se deseleccionan automáticamente.
El siguiente es un constructor de la clase gtk.RadioButton:
gtk.RadioButton(group = None, Label = None, unerline = None)
Para crear un grupo de botones, proporcione group=None para el primer botón de opción y para las opciones posteriores, proporcione el objeto del primer botón como grupo.
Como en el caso de ToggleButton y CheckButton, RadioButton también emite the toggled signal. En el ejemplo que se muestra a continuación, tres objetos del widget gtk.RadioButton se colocan en un VBox. Todos ellos están conectados a una función de devolución de llamada on_selected (), para procesar la señal conmutada.
La función de devolución de llamada identifica la etiqueta del widget RadioButton de origen y lo muestra en la etiqueta colocada en el VBox.
Ejemplo
Observe el siguiente código:
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Radio Button")
self.set_default_size(250, 200)
self.set_position(gtk.WIN_POS_CENTER)
vbox = gtk.VBox()
btn1 = gtk.RadioButton(None, "Button 1")
btn1.connect("toggled", self.on_selected)
btn2 = gtk.RadioButton(btn1,"Button 2")
btn2.connect("toggled", self.on_selected)
btn3 = gtk.RadioButton(btn1,"Button 3")
btn3.connect("toggled", self.on_selected)
self.lbl = gtk.Label()
vbox.add(btn1)
vbox.add(btn2)
vbox.add(btn3)
vbox.add(self.lbl)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_selected(self, widget, data=None):
self.lbl.set_text(widget.get_label()+" is selected")
if __name__ == '__main__':
PyApp()
gtk.main()
El código anterior generará la siguiente salida: