PyGTK - Classe ToggleButton
Le widget ToggleButton est un gtk.Button avec deux états - un pressed or active (ou activé) et un normal or inactive (or off)Etat. Chaque fois que vous appuyez sur le bouton, l'état change. L'état du ToggleButton peut également être modifié par programme par la méthode set_active (). Pour changer l'état du bouton, la méthode toggled () est également disponible.
La classe gtk.ToggleButton a le constructeur suivant -
gtk.ToggleButton(label = None, use_underline = True)
Ici, l'étiquette est le test à afficher sur le bouton. La propriété use_underline, si True, un trait de soulignement dans le texte indique que le caractère suivant doit être souligné et utilisé pour l'accélérateur mnémonique.
Certaines des méthodes importantes de la classe gtk.ToggleButton sont données dans le tableau suivant -
set_active () | Cela définit le active propriété à la valeur à True (actif ou enfoncé ou allumé) ou False (inactif ou normal ou éteint) |
soit actif() | Cela récupère l'état du bouton |
basculé () | Cela émet le signal "basculé" sur le bouton à bascule. |
Le widget ToggleButton émet le signal suivant -
Basculé | Ceci est émis lorsque l'état du bouton bascule change soit par programme, soit par l'action de l'utilisateur. |
Le code ci-dessous illustre l'utilisation des widgets ToggleButton.
Deux widgets ToggleButtons et Label sont placés dans un conteneur VBox. Le signal basculé émis par Button1 est connecté à une fonction de rappel on_toggled (). Dans cette fonction, l'état de Button2 est défini sur True si celui de Button1 est False et vice versa.
if self.btn1.get_active() == True:
self.btn2.set_active(False)
else:
self.btn2.set_active(True)
Il affiche les états instantanés des boutons sur l'étiquette.
Exemple
Respectez le code suivant -
import gtk
PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Toggle Button")
self.set_default_size(250, 200)
self.set_position(gtk.WIN_POS_CENTER)
vbox = gtk.VBox()
self.btn1 = gtk.ToggleButton("Button 1")
self.btn1.connect("toggled", self.on_toggled)
self.btn2 = gtk.ToggleButton("Button 2")
self.lbl = gtk.Label()
vbox.add(self.btn1)
vbox.add(self.btn2)
vbox.add(self.lbl)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_toggled(self, widget, data = None):
if self.btn1.get_active() == True:
self.btn2.set_active(False)
else:
self.btn2.set_active(True)
state = "Button1 : "+str(self.btn1.get_active())+"
Button2 : "+str(self.btn2.get_active())
self.lbl.set_text(state)
if __name__ == '__main__':
PyApp()
gtk.main()
Le code ci-dessus génère la sortie suivante -