PyGTK - Classe RadioButton

Un singolo widget RadioButton offre funzionalità simili a CheckButton. Tuttavia, quando più di un pulsante di opzione è presente nello stesso contenitore, è disponibile una scelta mutuamente esclusiva per l'utente da scegliere tra una delle opzioni disponibili. Se ogni pulsante di opzione nel contenitore appartiene allo stesso gruppo, quando ne viene selezionato uno, gli altri vengono automaticamente deselezionati.

Quello che segue è un costruttore della classe gtk.RadioButton -

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

Per creare un gruppo di pulsanti, fornire group=None per il primo pulsante di opzione e per le opzioni successive, fornire l'oggetto del primo pulsante come gruppo.

Come nel caso di ToggleButton e CheckButton, anche il RadioButton emette the toggled signal. Nell'esempio riportato di seguito, tre oggetti del widget gtk.RadioButton sono posizionati in un VBox. Tutti sono collegati a una funzione di callback on_selected (), per elaborare il segnale commutato.

La funzione di callback identifica l'etichetta del widget RadioButton di origine e la visualizza sull'etichetta inserita nel VBox.

Esempio

Rispettare il codice seguente:

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()

Il codice sopra genererà il seguente output: