PyGTK-레이아웃 클래스

gtk.Layout은 gtk.Fixed와 유사한 컨테이너 위젯입니다. 위젯은 절대 좌표를 지정하여 레이아웃 위젯에 배치됩니다. 그러나 레이아웃은 다음과 같은 점에서 고정 위젯과 다릅니다.

  • 레이아웃 위젯은 무한한 너비와 높이를 가질 수 있습니다. 너비와 높이의 최대 값은 부호없는 정수의 크기로 제한됩니다.

  • gtk.DrawingArea 위젯은 레이아웃 컨테이너에 포함될 수 있습니다. DrawingArea는 선, 직사각형 등과 같은 2D 요소를 그릴 수있는 캔버스입니다.

  • 레이아웃 컨테이너를 더 작은 차원의 최상위 창에 배치하려면 스크롤 막대와 연결하거나 ScrolledWindow에 배치 할 수 있습니다.

gtk.Layout 클래스에는 다음과 같은 생성자가 있습니다.

gtk.Layout(hadjustment = None, vadjustment = None)

그만큼 hadjustmentvadjustment 속성은 조정 가능한 경계 값을 가진 객체를 나타냅니다.

다음 표는 자주 사용되는 레이아웃 방법을 나열합니다.

put (위젯, x, y) 지정된 좌표에 자식 위젯을 배치합니다.
세트 _ 크기 (w, h) 레이아웃 컨테이너의 크기를 지정된 너비와 높이로 설정합니다.

Layout 객체는 관련된 조정이 변경 될 때 set_scroll_adjustment 신호를 내 보냅니다.

다음 예제에서 레이블은 레이아웃 컨테이너의 중앙에 배치되며, 차례로 더 작은 크기의 최상위 창에 배치됩니다. 따라서 먼저 ScrolledWindow에 추가되고 ScrolledWindow가 기본 창에 추가됩니다.

코드 관찰-

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("layout")
      self.set_size_request(300,200)
      self.set_position(gtk.WIN_POS_CENTER)
      sc = gtk.ScrolledWindow()
      lo = gtk.Layout()
      lo.set_size(400,400)
      button = gtk.Button("Press Me")
      lo.put(button, 125,200)
      sc.add(lo)
      self.add(sc)
      self.connect("destroy", gtk.main_quit)
      self.show_all()

PyApp()
gtk.main()

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