PyGTK-ScrolledWindow 클래스

상위 창보다 큰 영역의 다른 위젯에 액세스하기 위해 스크롤 된 창이 생성됩니다. TreeView 및 TextView와 같은 일부 위젯은 스크롤을 기본적으로 지원합니다. 레이블 또는 테이블과 같은 다른 경우에는 뷰포트를 제공해야합니다.

다음 구문은 gtk.ScrolledWindow 클래스의 생성자에 사용됩니다.

sw = gtk.ScrolledWindow(hadj, vadj)

다음은 gtk.ScrolledWindow 클래스의 메소드입니다.

  • ScrolledWindow.set_hadjustment() − 이것은 gtk.Adjustment 객체에 수평 조정을 설정합니다.

  • ScrolledWindow.set_vadjustment() − 이것은 gtk.Adjustment 객체에 수직 조정을 설정합니다.

  • ScrolledWindow.set_Policy (hpolicy, vpolicy)− "hscrollbar_policy"및 "vscrollbar_policy"속성을 설정합니다. 다음 사전 정의 된 상수 중 하나가 사용됩니다.

    • gtk.POLICY_ALWAYS − 스크롤바는 항상 존재합니다.

    • gtk.POLICY_AUTOMATIC − 스크롤바는 필요한 경우에만 표시됩니다. 즉, 내용이 창보다 큽니다.

    • gtk.POLICY_NEVER − 스크롤바가 존재하지 않습니다.

  • ScrolledWindow.add_with_viewport(child) −이 방법은 스크롤 된 창에 기본 스크롤 기능없이 위젯 (자식이 지정)을 추가하는 데 사용됩니다. 이것은 추가하는 것과 동일한 편의 기능입니다.childgtk.Viewport을 클릭 한 다음 스크롤 된 창에 뷰포트를 추가합니다.

다음 코드는 10 x 10 차원의 gtk.Table 객체 주위에 스크롤 된 창을 추가합니다. 테이블 오브젝트는 자동으로 조정을 지원하지 않으므로 뷰포트에 추가됩니다.

sw = gtk.ScrolledWindow()
table = gtk.Table(10,10)

두 개의 중첩 된 루프를 사용하여 각각 10 개 열의 10 개 행을 추가합니다. gtk.Button 위젯은 각 셀에 배치됩니다.

for i in range(1,11):
   for j in range(1,11):
      caption = "Btn"+str(j)+str(i)
      btn = gtk.Button(caption)
      table.attach(btn, i, i+1, j, j+1)

이 충분히 큰 테이블이 이제 뷰포트와 함께 스크롤 된 창에 추가됩니다.

sw.add_with_viewport(table)

다음 코드를 관찰하십시오-

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      
	  self.set_title("ScrolledWindow and Viewport")
      self.set_size_request(400,300)
      self.set_position(gtk.WIN_POS_CENTER)
      sw = gtk.ScrolledWindow()
      table = gtk.Table(10,10)
      table.set_row_spacings(10)
      table.set_col_spacings(10)
      for i in range(1,11):
         for j in range(1,11):
            caption = "Btn"+str(j)+str(i)
            btn = gtk.Button(caption)
            table.attach(btn, i, i+1, j, j+1)
      sw.add_with_viewport(table)
      self.add(sw)
      
	  self.connect("destroy", gtk.main_quit)
      self.show_all()

PyApp()
gtk.main()

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