PyGTK - Classe RadioButton

Un seul widget RadioButton offre des fonctionnalités similaires à CheckButton. Cependant, lorsque plus d'un bouton radio est présent dans le même conteneur, un choix mutuellement exclusif est disponible pour que l'utilisateur choisisse l'une des options disponibles. Si chaque bouton radio du conteneur appartient au même groupe, alors que l'un est sélectionné, les autres sont automatiquement désélectionnés.

Ce qui suit est un constructeur de la classe gtk.RadioButton -

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

Pour créer un groupe de boutons, fournissez group=None pour le premier bouton radio et pour les options suivantes, indiquez l'objet du premier bouton sous forme de groupe.

Comme dans le cas de ToggleButton et CheckButton, le RadioButton émet également the toggled signal. Dans l'exemple donné ci-dessous, trois objets du widget gtk.RadioButton sont placés dans une VBox. Tous sont connectés à une fonction de rappel on_selected (), pour traiter le signal basculé.

La fonction de rappel identifie l'étiquette du widget RadioButton source et l'affiche sur l'étiquette placée dans la VBox.

Exemple

Respectez le code suivant -

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

Le code ci-dessus générera la sortie suivante -