Pygtk-scrollbar-class

提供:Dev Guides
移動先:案内検索

PyGTK-スクロールバークラス

このクラスは、gtk.Hscrollbarおよびgtk.Vscrollbarウィジェットの抽象基本クラスです。 どちらも調整オブジェクトに関連付けられています。 スクロールバーのつまみの位置は、スクロール調整によって制御されます。 調整オブジェクトの属性は次のように使用されます-

lower The minimum value of the scroll region
upper The maximum value of the scroll region
value Represents the position of the scrollbar, which must be between lower and upper
page_size Represents the size of the visible scrollable area
step_increment Distance to scroll when the small stepper arrows are clicked
page_increment Distance to scroll when the Page Up *or Page Down* keys pressed

次のプログラムは、トップレベルウィンドウに追加されたVBoxに配置されたHScaleおよびHScrollbarウィジェットを示しています。 それらはそれぞれ調整オブジェクトに関連付けられています。

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 *の 'value-changed’信号がコールバック関数 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()

上記のコードは、次の出力を生成します-

範囲ウィジェットのデモ