PyGTK - ToggleButton Sınıfı

ToggleButton widget'ı, iki duruma sahip bir gtk.Button'dur - bir pressed or active (veya açık) durum ve bir normal or inactive (or off)durum. Düğmeye her basıldığında durum değişir. ToggleButton'ın durumu ayrıca set_active () yöntemi ile programlı olarak değiştirilebilir. Düğmenin durumunu değiştirmek için toggled () yöntemi de mevcuttur.

Gtk.ToggleButton sınıfı aşağıdaki yapıcıya sahiptir -

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

Burada etiket, buton üzerinde gösterilecek testtir. Use_underline özelliği, eğer True ise, metindeki bir alt çizgi, bir sonraki karakterin altının çizilmesi ve anımsatıcı hızlandırıcı için kullanılması gerektiğini belirtir.

Gtk.ToggleButton sınıfının önemli yöntemlerinden bazıları aşağıdaki tabloda verilmiştir -

set_active () Bu, active değerine özellik True (aktif veya basılı veya açık) veya False (etkin değil veya normal veya kapalı)
get_active () Bu, düğmenin durumunu alır
geçişli () Bu, geçiş düğmesindeki "değiştirilmiş" sinyali yayar.

ToggleButton widget'ı aşağıdaki sinyali yayar -

Geçişli Bu, togglebutton durumu programlı olarak veya kullanıcı eylemiyle değiştiğinde yayınlanır.

Aşağıda verilen kod, ToggleButton widget'larının kullanımını gösterir.

İki ToggleButtons ve Label widget'ı bir VBox kapsayıcısına yerleştirilir. Button1 tarafından yayılan değiştirilmiş sinyal, on_toggled () bir geri arama işlevine bağlanır. Bu işlevde, Button1'in durumu False ise Button2'nin durumu True olarak ayarlanır ve bunun tersi de geçerlidir.

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

Etiket üzerindeki düğmelerin anlık durumlarını görüntüler.

Misal

Aşağıdaki kodu inceleyin -

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

Yukarıdaki kod aşağıdaki çıktıyı üretir -