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()
上記のコードは、次の出力を生成します-