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 -