Этот класс является абстрактным базовым классом для виджетов gtk.Hscrollbar и gtk.Vscrollbar. Оба связаны с объектом корректировки. Положение большого пальца полосы прокрутки контролируется настройками прокрутки. Атрибуты объекта настройки используются следующим образом:
ниже | Минимальное значение области прокрутки |
верхний | Максимальное значение области прокрутки |
значение | Представляет положение полосы прокрутки, которая должна быть между нижней и верхней |
размер страницы | Представляет размер видимой прокручиваемой области |
step_increment | Расстояние для прокрутки при нажатии на маленькие шаговые стрелки |
page_increment | Расстояние для прокрутки при нажатии клавиш Page Up или Page Down |
Следующая программа показывает виджет HScale и HScrollbar, помещенный в VBox, добавленный в окно верхнего уровня. Каждый из них связан с объектом корректировки.
adj1 = gtk.Adjustment(0, 0, 101, 0.1, 1, 1) self.adj2 = gtk.Adjustment(10,0,101,5,1,1)
Виджет gtk.HScale — это слайдер, прикрепленный с помощью adj1. Его политика обновления, номер и позиция значения чертежа устанавливаются следующим образом:
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 предоставляет горизонтальную полосу прокрутки. Это связано с объектом adj2. Его политика обновлений тоже установлена на НЕПРЕРЫВНЫЙ.
self.bar1 = gtk.HScrollbar(self.adj2) self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)
Чтобы отобразить мгновенное значение полосы прокрутки, сигнал «значение изменено» объекта настройки — adj2 подключен к функции обратного вызова on_scrolled () . Функция извлекает свойство value объекта уравнивания и отображает его на метке под полосой прокрутки.
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)))
пример
Соблюдайте следующий код —
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()
Приведенный выше код сгенерирует следующий вывод: