PyGTK-레이아웃 클래스
gtk.Layout은 gtk.Fixed와 유사한 컨테이너 위젯입니다. 위젯은 절대 좌표를 지정하여 레이아웃 위젯에 배치됩니다. 그러나 레이아웃은 다음과 같은 점에서 고정 위젯과 다릅니다.
레이아웃 위젯은 무한한 너비와 높이를 가질 수 있습니다. 너비와 높이의 최대 값은 부호없는 정수의 크기로 제한됩니다.
gtk.DrawingArea 위젯은 레이아웃 컨테이너에 포함될 수 있습니다. DrawingArea는 선, 직사각형 등과 같은 2D 요소를 그릴 수있는 캔버스입니다.
레이아웃 컨테이너를 더 작은 차원의 최상위 창에 배치하려면 스크롤 막대와 연결하거나 ScrolledWindow에 배치 할 수 있습니다.
gtk.Layout 클래스에는 다음과 같은 생성자가 있습니다.
gtk.Layout(hadjustment = None, vadjustment = None)
그만큼 hadjustment 과 vadjustment 속성은 조정 가능한 경계 값을 가진 객체를 나타냅니다.
다음 표는 자주 사용되는 레이아웃 방법을 나열합니다.
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()
위의 코드는 다음 출력을 생성합니다.