PyGTK - Classe RadioButton

Um único widget RadioButton oferece funcionalidade semelhante ao CheckButton. No entanto, quando mais de um botão de opção está presente no mesmo contêiner, uma escolha mutuamente exclusiva está disponível para o usuário escolher uma das opções disponíveis. Se todos os botões de opção no container pertencerem ao mesmo grupo, quando um for selecionado, os outros serão automaticamente desmarcados.

O seguinte é um construtor da classe gtk.RadioButton -

gtk.RadioButton(group = None, Label = None, unerline = None)

Para criar um grupo de botões, forneça group=None para o primeiro botão de opção e para as opções subsequentes, forneça o objeto do primeiro botão como grupo.

Como no caso de ToggleButton e CheckButton, o RadioButton também emite the toggled signal. No exemplo a seguir, três objetos do widget gtk.RadioButton são colocados em um VBox. Todos eles estão conectados a uma função de retorno de chamada on_selected (), para processar o sinal alternado.

A função de retorno de chamada identifica o rótulo do widget RadioButton de origem e o exibe no rótulo colocado no VBox.

Exemplo

Observe o seguinte 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()

O código acima irá gerar a seguinte saída -