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) −이 방법은 스크롤 된 창에 기본 스크롤 기능없이 위젯 (자식이 지정)을 추가하는 데 사용됩니다. 이것은 추가하는 것과 동일한 편의 기능입니다.child 에 gtk.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()
위의 코드는 다음 출력을 생성합니다.