PyGTK - ToggleButton-Klasse

Das ToggleButton-Widget ist ein gtk.Button mit zwei Status - a pressed or active (oder ein) Zustand und a normal or inactive (or off)Zustand. Bei jedem Drücken der Taste wechselt der Status. Der Status des ToggleButton kann auch programmgesteuert mit der Methode set_active () geändert werden. Um den Status der Schaltfläche zu ändern, steht auch die Methode toggled () zur Verfügung.

Die Klasse gtk.ToggleButton hat den folgenden Konstruktor:

gtk.ToggleButton(label = None, use_underline = True)

Hier ist Label der Test, der auf der Schaltfläche angezeigt werden soll. Wenn die Eigenschaft use_underline True ist, gibt ein Unterstrich im Text an, dass das nächste Zeichen unterstrichen und für den Mnemonik-Beschleuniger verwendet werden soll.

Einige der wichtigen Methoden der Klasse gtk.ToggleButton sind in der folgenden Tabelle aufgeführt:

Aktivieren() Dies setzt die active Eigenschaft auf den Wert zu True (aktiv oder gedrückt oder eingeschaltet) oder False (inaktiv oder normal oder aus)
aktiv werden() Dadurch wird der Status der Schaltfläche abgerufen
umgeschaltet () Dies gibt das "umgeschaltete" Signal auf dem Umschaltknopf aus.

Das ToggleButton-Widget gibt das folgende Signal aus:

Umgeschaltet Dies wird ausgegeben, wenn sich der Status der Umschalttaste entweder programmgesteuert oder durch die Benutzeraktion ändert.

Der unten angegebene Code veranschaulicht die Verwendung von ToggleButton-Widgets.

Zwei ToggleButtons- und Label-Widgets werden in einem VBox-Container abgelegt. Das von Button1 ausgegebene umgeschaltete Signal ist mit einer Rückruffunktion on_toggled () verbunden. In dieser Funktion wird der Status von Button2 auf True gesetzt, wenn der von Button1 False ist und umgekehrt.

if self.btn1.get_active() == True:
   self.btn2.set_active(False)
else:
   self.btn2.set_active(True)

Es zeigt den momentanen Status der Schaltflächen auf dem Etikett an.

Beispiel

Beachten Sie den folgenden Code -

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

Der obige Code generiert die folgende Ausgabe: