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 페이지의 노트북을 표시합니다.