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 -