PyGTK - Kelas Scrollbar

Kelas ini adalah kelas dasar abstrak untuk widget gtk.Hscrollbar dan gtk.Vscrollbar. Keduanya terkait dengan objek Penyesuaian. Posisi ibu jari bilah gulir dikontrol oleh penyesuaian gulir. Atribut objek penyesuaian digunakan sebagai berikut -

menurunkan Nilai minimum wilayah gulir
atas Nilai maksimum wilayah gulir
nilai Merepresentasikan posisi scrollbar, yang harus berada di antara bawah dan atas
ukuran halaman Mewakili ukuran area yang dapat digulirkan terlihat
step_increment Jarak untuk menggulir saat panah stepper kecil diklik
page_increment Jarak untuk menggulir saat Page Up atau Page Down tombol ditekan

Program berikut menampilkan HScale dan widget HScrollbar yang ditempatkan di VBox yang ditambahkan ke jendela tingkat atas. Masing-masing dikaitkan dengan objek penyesuaian.

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

Widget gtk.HScale adalah kontrol slider yang dipasang dengan adj1. Kebijakan pembaruan, jumlah dan posisi nilai gambar diatur sebagai berikut -

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 menyediakan scrollbar horizontal. Ini terkait dengan objek adj2. Kebijakan pembaruannya juga disetel ke LANJUTAN.

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

Untuk menampilkan nilai seketika dari bilah gulir, sinyal 'nilai berubah' dari the adjustment object — adj2 terhubung ke fungsi panggilan balik on_scrolled(). Fungsi mengambil properti nilai objek penyesuaian dan menampilkannya pada label di bawah bilah gulir.

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

Contoh

Perhatikan kode berikut -

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

Kode di atas akan menghasilkan output berikut -