PyGTK - Kaydırma Çubuğu Sınıfı

Bu sınıf, gtk.Hscrollbar ve gtk.Vscrollbar widget'ları için soyut bir temel sınıftır. Her ikisi de bir Ayarlama nesnesiyle ilişkilidir. Kaydırma çubuğunun başparmağının konumu, kaydırma ayarlamalarıyla kontrol edilir. Ayar nesnesinin nitelikleri şu şekilde kullanılır -

aşağı Kaydırma bölgesinin minimum değeri
üst Kaydırma bölgesinin maksimum değeri
değer Alt ve üst arasında olması gereken kaydırma çubuğunun konumunu temsil eder
sayfa boyutu Görünür kaydırılabilir alanın boyutunu temsil eder
step_increment Küçük kademeli oklara tıklandığında kaydırılacak mesafe
page_increment Kaydırılacak mesafe Page Up veya Page Down basılmış tuşlar

Aşağıdaki program, bir HScale ve üst düzey pencereye eklenen bir VBox'a yerleştirilmiş bir HScrollbar widget'ını göstermektedir. Her biri bir ayarlama nesnesiyle ilişkilendirilmiştir.

adj1 = gtk.Adjustment(0, 0, 101, 0.1, 1, 1)
self.adj2 = gtk.Adjustment(10,0,101,5,1,1)

Bir gtk.HScale widget'ı, adj1 ile eklenen bir kaydırıcı denetimidir. Güncelleme politikası, çizim değerinin sayısı ve konumu aşağıdaki gibi ayarlanır -

scale1 = gtk.HScale(adj1)
scale1.set_update_policy(gtk.UPDATE_CONTINUOUS)
scale1.set_digits(1)
scale1.set_value_pos(gtk.POS_TOP)
scale1.set_draw_value(True)

gtk.HScrollbar yatay bir kaydırma çubuğu sağlar. Adj2 nesnesiyle ilişkilidir. Güncelleme politikası da SÜREKLİ olarak ayarlanmıştır.

self.bar1 = gtk.HScrollbar(self.adj2)
self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)

Kaydırma çubuğunun anlık değerini görüntülemek için, 'değer değiştirildi' sinyali the adjustment object — adj2 geri arama işlevine bağlı on_scrolled(). İşlev, ayarlama nesnesinin value özelliğini alır ve kaydırma çubuğunun altındaki bir etikette görüntüler.

self.adj2.connect("value_changed", self.on_scrolled)
   def on_scrolled(self, widget, data = None):
   self.lbl2.set_text("HScrollbar value: "+str(int(self.adj2.value)))

Misal

Aşağıdaki kodu inceleyin -

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Range widgets Demo")
      self.set_default_size(250, 200)
      self.set_position(gtk.WIN_POS_CENTER)
      
      adj1 = gtk.Adjustment(0.0, 0.0, 101.0, 0.1, 1.0, 1.0)
      self.adj2 = gtk.Adjustment(10,0,101,5,1,1)
      
      scale1 = gtk.HScale(adj1)
      scale1.set_update_policy(gtk.UPDATE_CONTINUOUS)
      scale1.set_digits(1)
      scale1.set_value_pos(gtk.POS_TOP)
      scale1.set_draw_value(True)
      
      vb = gtk.VBox()
      vb.add(scale1)
      lbl1 = gtk.Label("HScale")
      
      vb.add(lbl1)
      self.bar1 = gtk.HScrollbar(self.adj2)
      self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)
      vb.add(self.bar1)
      self.lbl2 = gtk.Label("HScrollbar value: ")
      
      vb.add(self.lbl2)
      self.adj2.connect("value_changed", self.on_scrolled)
      self.add(vb)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
   
   def on_scrolled(self, widget, data=None):
      self.lbl2.set_text("HScrollbar value: "+str(int(self.adj2.value)))
if __name__ == '__main__':
   PyApp()
   gtk.main()

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