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 -