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: