PyGTK-박스 클래스

gtk.Box 클래스는 위젯이 직사각형 영역에 배치되는 컨테이너의 기능을 정의하는 추상 클래스입니다. gtk.HBox 및 gtk.VBox 위젯은 여기에서 파생됩니다.

gtk.Hbox의 하위 위젯은 동일한 행에 가로로 배열됩니다. 반면에 gtk.VBox의 자식 위젯은 같은 열에 세로로 배열됩니다.

gtk.Box 클래스는 다음 생성자를 사용합니다.

gtk.Box(homogenous = True, spacing = 0)

동종 속성은 기본적으로 True로 설정됩니다. 결과적으로 모든 하위 위젯에 동일한 할당이 제공됩니다.

gtk.Box는 패킹 메커니즘을 사용하여 시작 또는 끝을 참조하여 특정 위치를 참조하여 하위 위젯을 배치합니다. pack_start () 메서드는 위젯을 처음부터 끝까지 배치합니다. 반대로 pack_end () 메서드는 위젯을 끝에서 시작으로 배치합니다. 또는 pack_start ()와 유사한 add () 메서드를 사용할 수 있습니다.

다음 메소드는 gtk.HBox 및 gtk.VBox에 사용할 수 있습니다.

  • gtk_box_pack_start ()

  • gtk_box_pack_end ()

gtk_box_pack_start ()

이 방법은 child 상자의 시작 부분을 참조하여 포장 됨-

pack_start(child, expand = True, fill = True, padding = 0)

다음은 매개 변수입니다-

  • child − 상자에 추가 할 위젯 개체입니다.

  • expand− 어린이에게 상자에 추가 공간이 주어지면 True로 설정됩니다. 추가 공간은 모든 어린이에게 나뉩니다.widgets.

  • fill− True이면 추가 공간이 자식에게 할당됩니다. 그렇지 않으면이 매개 변수가 패딩으로 사용됩니다.

  • padding − 상자에서 위젯 사이의 픽셀 단위 공간입니다.

gtk_box_pack_end ()

이것은 상자의 끝을 참조하여 포장 된 상자에 자식을 추가합니다.

pack_end (child, expand = True, fill = True, padding = 0)

다음은 매개 변수입니다-

  • child − 추가 할 위젯 개체입니다.

  • expand− 어린이에게 상자에 추가 공간이 주어지면 True로 설정됩니다. 이 추가 공간은 모든 하위 위젯으로 나뉩니다.

  • fill − True이면 추가 공간이 자식에게 할당되며 그렇지 않으면 패딩으로 사용됩니다.

  • padding − 상자에있는 위젯 사이의 공간 (픽셀 단위)입니다.

set_spacing (spacing) 상자의 자식 사이에 배치 할 픽셀 수를 설정하는 함수입니다.

방법 add (widget)gtk.Container 클래스에서 상속됩니다. 컨테이너에 위젯을 추가합니다. 이 메서드는 pack_start () 메서드 대신 사용할 수 있습니다.

아래 주어진 예에서 최상위 창에는 세로 상자 (gtk.VBox 개체 상자)가 있습니다. 차례로 VBox 객체 vb와 HBox 객체 hb가 있습니다. 상단 박스에는 라벨, 엔트리 위젯, 버튼이 세로로 배치되어 있습니다. 아래쪽 상자에는 다른 레이블 세트, 항목 및 단추가 세로로 배치됩니다.

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

import gtk
class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
         self.set_title("Box demo")
		
      box = gtk.VBox()
      vb = gtk.VBox()
      lbl = gtk.Label("Enter name")
		
      vb.pack_start(lbl, expand = True, fill = True, padding = 10)
      text = gtk.Entry()
		
      vb.pack_start(text, expand = True, fill = True, padding = 10)
      btn = gtk.Button(stock = gtk.STOCK_OK)
		
      vb.pack_start(btn, expand = True, fill = True, padding = 10)
      hb = gtk.HBox()
		
      lbl1 = gtk.Label("Enter marks")
      hb.pack_start(lbl1, expand = True, fill = True, padding = 5)
      text1 = gtk.Entry()
		
      hb.pack_start(text1, expand = True, fill = True, padding = 5)
      btn1 = gtk.Button(stock = gtk.STOCK_SAVE)
		
      hb.pack_start(btn1, expand = True, fill = True, padding = 5)
      box.add(vb)
      box.add(hb)
      self.add(box)
      self.show_all()
PyApp()
gtk.main()

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