PyGTK - Durum Çubuğu Sınıfı

Genellikle bir pencerenin altında bulunan bir bildirim alanına durum çubuğu denir. Durum çubuğunda her türlü durum değişikliği mesajı görüntülenebilir. Aynı zamanda yeniden boyutlandırılabilen bir tutma yerine sahiptir.

Gtk.Statusbar widget'ı, bir mesaj yığını tutar. Bu nedenle, mevcut mesajın üstünde yeni mesaj görüntülenir. Açılırsa, önceki mesaj tekrar görünür olacaktır. Mesajın kaynağı, onu benzersiz bir şekilde tanımlamak için context_id ile tanımlanmalıdır.

Aşağıdaki gtk.Statusbar widget'ının yapıcısıdır -

bar = gtk.Statusbar()

Aşağıdakiler gtk.Statusbar sınıfının yöntemleridir -

  • Statusbar.push(context_id, text) - Bu durum çubuğu yığınına yeni bir mesaj gönderir.

  • Statusbar.pop(context_id) - Bu, belirtilen en üstteki mesajı kaldırır context_id durum çubuğunun yığınından.

Aşağıdaki sinyaller Durum Çubuğu widget'ı tarafından yayınlanır -

kısa mesaj Bu, durum çubuğu mesaj yığınından bir mesaj kaldırıldığında yayınlanır.
metin itmeli Durum çubuğu mesaj yığınına bir mesaj eklendiğinde bu yayınlanır.

Aşağıdaki örnek, Durum Çubuğunun işleyişini gösterir. Üst düzey pencere, iki satırlı bir VBox içerir. Üst satırda bir etiketin, bir Giriş parçacığının ve bir düğmenin yerleştirildiği bir Sabit parçacığı vardır. Alt satırda ise bir gtk.Statusbar widget'ı eklenir.

Durum çubuğuna mesaj göndermek için, context_id'sinin getirilmesi gerekir.

id1 = self.bar.get_context_id("Statusbar")

Button nesnesinin "tıklanan" sinyali, aracılığıyla durum çubuğunda bir mesajın itildiği bir geri arama işlevine bağlanır. Ve Giriş widget'ında Enter tuşuna basıldığında 'etkinleştir' sinyali verilir. Bu widget, başka bir geri aramaya bağlı.

btn.connect("clicked", self.on_clicked, id1)
txt.connect("activate", self.on_entered, id1)

Her iki geri aramada da push() Bildirim alanında mesajı flaş etme yöntemi.

Misal

Aşağıdaki kodu inceleyin -

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Statusbar demo")
      self.set_size_request(400,200)
      self.set_position(gtk.WIN_POS_CENTER)
		
      vbox = gtk.VBox()
      fix = gtk.Fixed()
      lbl = gtk.Label("Enter name")
		
      fix.put(lbl, 175, 50)
      txt = gtk.Entry()
      fix.put(txt, 150, 100)
		
      btn = gtk.Button("ok")
      fix.put(btn, 200,150)
		
      vbox.add(fix)
      self.bar = gtk.Statusbar()
      vbox.pack_start(self.bar, True, False, 0)
		
      id1 = self.bar.get_context_id("Statusbar")
      btn.connect("clicked", self.on_clicked, id1)
      txt.connect("activate", self.on_entered, id1)
		
      self.add(vbox)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
		
      def on_clicked(self, widget, data=None):
         self.bar.push(data, "Button clicked
		
      def on_entered(self, widget, data):
         self.bar.push(data, "text entered")

PyApp()
gtk.main()

Yürütme üzerine, yukarıdaki kod aşağıdaki çıktıyı gösterecektir -

Metin kutusuna yazmayı deneyin ve durum çubuğunda 'girilen metin' mesajını görmek için Enter tuşuna basın.