PyGTK-Paned 클래스

Paned 클래스는 두 개의 조정 가능한 창을 가로 (gtk.Hpaned) 또는 세로 (gtk.Vpaned)로 표시 할 수있는 위젯의 기본 클래스입니다. pack1 () 및 pack2 () 메서드를 사용하여 창에 자식 위젯을 추가합니다.

패닝 된 위젯은 두 창 사이에 구분 슬라이더를 그리고 상대적인 너비 / 높이를 조정하는 핸들을 제공합니다. 창 안에있는 자식 위젯의 크기 조정 속성이 True로 설정되어 있으면 창 크기에 따라 크기가 조정됩니다.

다음 방법은 HPaned 및 VPaned 클래스에서 사용할 수 있습니다.

  • Paned.add1 (child)-지정된 위젯을 추가합니다. child 상단 또는 왼쪽 창으로

  • Paned.add2 (child)-지정된 위젯을 추가합니다. child 아래쪽 또는 오른쪽 창에.

  • Paned.pack1 (child, resize, shrink)-지정된 위젯을 추가합니다. child매개 변수가있는 상단 또는 왼쪽 창으로 이동합니다. 만약resize 이다 True, child패닝 된 위젯의 크기를 조정할 때 크기를 조정해야합니다. 만약shrink 이다 True, child 최소 크기 요청보다 작게 만들 수 있습니다.

  • Paned.pack2 (child, resize, shrink)-두 창 사이의 구분선 위치를 설정합니다.

두 유형의 Paned 위젯은 다음 신호를 방출합니다.

수용 위치 이것은 다음과 같은 경우에 방출됩니다. paned 포커스가있는 자식 위젯이 활성화되도록하는 포커스가 있습니다.
취소 위치 이것은 Esc 키를 누른 상태에서 paned 초점이 있습니다.
이동 핸들 이것은 다음과 같은 경우에 방출됩니다. paned 포커스가 있고 구분 기호가 이동합니다.

다음 예제는 gtk.Hpaned 위젯을 사용합니다. 왼쪽 창에는 TreeView 위젯이 추가되고 오른쪽 창에는 TextView 위젯이 있습니다. TreeView에서 임의의 행을 선택하면 콜백 함수에 연결된 row_activated 신호를 방출합니다. 그만큼on_activated()function 행의 텍스트를 검색하고 텍스트보기 패널에 표시합니다.

코드 관찰-

import gtk, gobject

class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("HPaned widget Demo")
      self.set_default_size(250, 200)
      vp = gtk.HPaned()
      sw = gtk.ScrolledWindow()
      sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
		
      tree = gtk.TreeView()
      languages = gtk.TreeViewColumn()
      languages.set_title("GUI Toolkits")
      cell = gtk.CellRendererText()
      languages.pack_start(cell, True)
      languages.add_attribute(cell, "text", 0)
      treestore = gtk.TreeStore(str)
      it = treestore.append(None, ["Python"])
		
      treestore.append(it, ["PyQt"])
      treestore.append(it, ["wxPython"])
      treestore.append(it, ["PyGTK"])
      treestore.append(it, ["Pydide"])
		
      it = treestore.append(None, ["Java"])
      treestore.append(it, ["AWT"])
      treestore.append(it, ["Swing"])
      treestore.append(it, ["JSF"])
      treestore.append(it, ["SWT"])
		
      tree.append_column(languages)
      tree.set_model(treestore)
		
      vp.add1(tree)
      self.tv = gtk.TextView()
      vp.add2(self.tv)
      vp.set_position(100)
      self.add(vp)
		
      tree.connect("row-activated", self.on_activated)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
		
   def on_activated(self, widget, row, col):
      model = widget.get_model()
      text = model[row][0]
      print text
		
      buffer = gtk.TextBuffer()
      buffer.set_text(text+" is selected")
      self.tv.set_buffer(buffer)

if __name__ == '__main__':
   PyApp()
   gtk.main()

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