PyGTK-노트북 클래스
노트북 위젯은 탭이있는 컨테이너입니다. 이 컨테이너의 각 탭에는 서로 다른 페이지가 있으며 페이지는 겹치는 방식으로 표시됩니다. 탭의 레이블을 클릭하면 원하는 페이지가 표시됩니다. 레이블은 상단 또는 하단 또는 왼쪽 또는 오른쪽에 표시되도록 구성 할 수 있습니다. 다른 위젯이있는 컨테이너 위젯 또는 단일 위젯이 각 페이지 아래에 배치됩니다.
표시 할 데이터가 하나의보기에서 너무 큰 경우 각 페이지가 노트북 위젯의 한 탭 아래에 배치되는 다른 페이지로 그룹화됩니다. 이러한 유형의 제어는 매우 널리 사용됩니다. 예를 들어 인터넷 브라우저는이 탭 표시를 사용하여 다른 탭에서 다른 페이지를 렌더링합니다.
다음은 gtk.Notebook 클래스의 생성자입니다.
gtk.Notebook()
다음은 gtk.Notebook 클래스에서 자주 사용되는 메소드입니다.
append_page(child, label)− 탭의 레이블로 tab_label로 지정된 위젯이 포함 된 노트북에 페이지를 추가합니다. tab_label이 None이면 기본 레이블을 사용합니다.
insert_page(child, label, position) − 노트북의 위치에 지정된 위치에 페이지를 삽입합니다.
remove_page(index) − 지정된 인덱스에서 페이지를 제거합니다.
get_current_page() − 현재 페이지의 페이지 인덱스를 반환합니다.
set_current_page(index) − 인덱스에 의해 지정된 페이지 번호로 전환됩니다.
set_show_tabs()− 거짓이면 탭이 보이지 않습니다. 기본적으로 True입니다.
set_tab_pos(pos)− 노트북에서 페이지 전환을위한 탭이 그려지는 가장자리를 설정합니다. 미리 정의 된 상수는-
gtk.POS_LEFT
gtk.POS_RIGHT
gtk.POS_TOP
gtk.POS_BOTTOM
set_tab_label_text(child, text) − 지정된 텍스트로 새 레이블을 생성하고 자식이 포함 된 페이지의 탭 레이블로 설정합니다.
gtk.Notebook 위젯은 다음 신호를 방출합니다.
현재 페이지 변경 | 페이지 앞으로 또는 페이지 뒤로 요청이 발행 될 때 발생합니다. |
초점 탭 | 탭으로 초점이 변경 될 때 발생합니다. |
페이지 추가 | 노트북에 페이지가 추가 될 때 발생합니다. |
페이지 제거됨 | 이것은 노트북에서 페이지가 제거 된 후에 생성됩니다. |
선택 페이지 | 새 하위 페이지가 선택되면 발생합니다. |
페이지 전환 | 노트북 페이지가 변경되면 발생합니다. |
예
다음 예제에서 세 페이지가있는 gtk.Notebook은 최상위 gtk.Window에 배치됩니다. 첫 번째 페이지에는 레이블 및 항목 필드가 패킹 된 VBox가 있습니다. 'qualifications'라는 두 번째 페이지에는 상호 배타적 인 세 개의 RadioButton 위젯이 추가 된 HButtonBox가 있습니다. 세 번째 페이지에는 TextView 개체가 있습니다. 페이지 레이블이 맨 위에 표시됩니다.
코드 관찰-
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Notebook Demo")
self.set_default_size(250, 200)
nb = gtk.Notebook()
nb.set_tab_pos(gtk.POS_TOP)
vbox = gtk.VBox(False, 5)
vb = gtk.VBox()
hbox = gtk.HBox(True, 3)
valign = gtk.Alignment(0.5,0.25, 0, 0)
lbl = gtk.Label("Name of student")
vb.pack_start(lbl, True, True, 10)
text = gtk.Entry()
vb.pack_start(text, True, True, 10)
valign.add(vb)
vbox.pack_start(valign)
nb.append_page(vbox)
nb.set_tab_label_text(vbox, "Name")
hb = gtk.HButtonBox()
btn1 = gtk.RadioButton(None,"Degree")
hb.add(btn1)
btn2 = gtk.RadioButton(btn1,"P.G.")
hb.add(btn2)
btn3 = gtk.RadioButton(btn1,"Doctorate")
hb.add(btn3)
nb.append_page(hb)
nb.set_tab_label_text(hb, "Qualification")
tv = gtk.TextView()
nb.append_page(tv)
nb.set_tab_label_text(tv, "about")
self.add(nb)
self.connect("destroy", gtk.main_quit)
self.show_all()
if __name__ == '__main__':
PyApp()
gtk.main()
실행시 위의 코드는 3 페이지의 노트북을 표시합니다.