PyGTK - Scrollbar-Klasse
Diese Klasse ist eine abstrakte Basisklasse für die Widgets gtk.Hscrollbar und gtk.Vscrollbar. Beide sind einem Anpassungsobjekt zugeordnet. Die Position des Daumens der Bildlaufleiste wird durch Bildlaufeinstellungen gesteuert. Die Attribute des Anpassungsobjekts werden wie folgt verwendet:
niedriger | Der Mindestwert des Bildlaufbereichs |
Oberer, höher | Der Maximalwert des Bildlaufbereichs |
Wert | Stellt die Position der Bildlaufleiste dar, die zwischen unten und oben liegen muss |
Seitengröße | Repräsentiert die Größe des sichtbaren scrollbaren Bereichs |
step_increment | Entfernung zum Scrollen, wenn auf die kleinen Schrittpfeile geklickt wird |
page_increment | Entfernung zum Scrollen, wenn die Page Up oder Page Down Tasten gedrückt |
Das folgende Programm zeigt ein HScale- und ein HScrollbar-Widget in einer VBox, die dem Fenster auf oberster Ebene hinzugefügt wurde. Jeder von ihnen ist einem Anpassungsobjekt zugeordnet.
adj1 = gtk.Adjustment(0, 0, 101, 0.1, 1, 1)
self.adj2 = gtk.Adjustment(10,0,101,5,1,1)
Ein gtk.HScale-Widget ist ein Schieberegler, der mit adj1 verbunden ist. Die Aktualisierungsrichtlinie, die Anzahl und die Position des Zeichnungswerts werden wie folgt festgelegt:
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 bietet eine horizontale Bildlaufleiste. Es ist dem adj2-Objekt zugeordnet. Auch die Update-Richtlinie ist auf CONTINUOUS eingestellt.
self.bar1 = gtk.HScrollbar(self.adj2)
self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)
Um den Momentanwert der Bildlaufleiste anzuzeigen, wird das Signal 'Wert geändert' von angezeigt the adjustment object — adj2 ist mit der Rückruffunktion verbunden on_scrolled(). Die Funktion ruft die value-Eigenschaft des Anpassungsobjekts ab und zeigt sie auf einer Beschriftung unter der Bildlaufleiste an.
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)))
Beispiel
Beachten Sie den folgenden Code -
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()
Der obige Code generiert die folgende Ausgabe: