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: