PyGTK-스크롤바 클래스

이 클래스는 gtk.Hscrollbar 및 gtk.Vscrollbar 위젯에 대한 추상 기본 클래스입니다. 둘 다 조정 개체와 연결되어 있습니다. 스크롤 막대의 썸 위치는 스크롤 조정으로 제어됩니다. 조정 개체의 속성은 다음과 같이 사용됩니다-

보다 낮은 스크롤 영역의 최소값
높은 스크롤 영역의 최대 값
스크롤바의 위치를 ​​나타내며 하단과 상단 사이에 있어야합니다.
페이지 크기 보이는 스크롤 가능 영역의 크기를 나타냅니다.
step_increment 작은 스테퍼 화살표를 클릭 할 때 스크롤 할 거리
page_increment 스크롤 할 거리 Page Up 또는 Page Down 누른 키

다음 프로그램은 최상위 창에 추가 된 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 객체와 연관됩니다. 업데이트 정책도 CONTINUOUS로 설정됩니다.

self.bar1 = gtk.HScrollbar(self.adj2)
self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)

스크롤바의 순간 값을 표시하기 위해 '값 변경'신호 the adjustment object — adj2 콜백 함수에 연결됨 on_scrolled(). 이 함수는 조정 개체의 값 속성을 검색하여 스크롤바 아래의 레이블에 표시합니다.

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()

위의 코드는 다음 출력을 생성합니다.