PyGTK - klasa ToggleButton

Widżet ToggleButton to gtk.Button z dwoma stanami - a pressed or active (lub włączony) stan i normal or inactive (or off)stan. Za każdym naciśnięciem przycisku stan zmienia się. Stan ToggleButton można również zmienić programowo za pomocą metody set_active (). Aby zmienić stan przycisku, dostępna jest również metoda toggled ().

Klasa gtk.ToggleButton ma następujący konstruktor -

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

Tutaj etykieta to test, który ma być wyświetlany na przycisku. Właściwość use_underline, jeśli wartość True, podkreślenie w tekście wskazuje, że następny znak należy podkreślić i użyć jako akceleratora mnemonicznego.

W poniższej tabeli przedstawiono niektóre z ważnych metod klasy gtk.ToggleButton -

set_active () To ustawia active właściwość na wartość True (aktywny lub wciśnięty lub włączony) lub False (nieaktywne lub normalne lub wyłączone)
get_active () To pobiera stan przycisku
toggled () To emituje sygnał „przełączony” na przełączniku.

Widżet ToggleButton emituje następujący sygnał -

Przełączono Jest to emitowane, gdy stan togglebutton zmienia się programowo lub w wyniku działania użytkownika.

Poniższy kod demonstruje użycie widżetów ToggleButton.

Dwa widżety ToggleButtons i Label są umieszczane w kontenerze VBox. Sygnał przełączany emitowany przez Button1 jest połączony z funkcją wywołania zwrotnego on_toggled (). W tej funkcji stan przycisku Button2 jest ustawiany na True, jeśli stan przycisku Button1 jest fałszywy i odwrotnie.

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

Wyświetla chwilowe stany przycisków na etykiecie.

Przykład

Przestrzegaj następującego kodu -

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

Powyższy kod generuje następujące dane wyjściowe -