버튼이나 레이블 등의 위젯은 컨테이너 내부에 배치되어, 컨테이너 내부에 어떤 위치에
어떤 크기로 배치되는가를 프로그래머가 절대 좌표값으로 구체적으로 지정한다.
하지만, 이러한 방법은 플랫폼마다 위젯의 크기가 달라질 수 있다. 이를 해결하기 위해
파이썬에서는 위젯의 배치를 배치 관리자(layout manager)를 사용하여 자동화한다.
배치 관리자
컨테이너 안에 존재하는 위젯의 크기와 위치를 자동적으로 관리하는 객체이다.
파이썬에는 아래의 배치 관리자가 제공된다.
- 격자(grid) 배치 관리자
- 압축(pack) 배치 관리자
- 절대(place) 배치 관리자
격자 배치 관리자
격차 배치 관리자(grid geometry manager)는 위젯(버튼, 레이블 등)을 테이블 형태로
배치한다.
아래의 예를 보자.
격자의 0번째 행과 0번째 열에 One 버튼을,
격자의 1번째 행과 1번째 열에 Two 버튼을 배치했다.
행 번호와 열 번호는 0부터 시작하는 것을 잊지말자.
다른 예를 보자.
빈공간에 레이블을 넣어봤다.
압축 배치 관리자
압축 배치 관리자(pack geometry manager)는 위젯을 최대한 붙여서 배치한다.
주로 위젯들을 세로로 차례로 배치하는데 사용된다.
아래의 예를 보자.
다른 예를 보자.
fill 옵션을 사용하면 위젯이 전체 컨테이너를 채우도록 할 수 있다.
여기서는 fill을 X로 지정하여 x방향으로 채웠다.
fill 옵션에는 X, Y, BOTH가 있다.
또 다른 예를 보자.
박스들을 왼쪽에서 오른쪽으로 배치하려면 side 매개 변수를 LEFT로 지정하면 된다.
절대 위치 배치 관리자
절대 위치 배치 관리자(place geometry manager)는 절대 위치를 사용하여 위젯을 배치한다.
x와 y 매개변수를 사용한다.
아래의 예를 보자.
하나의 컨테이너 안에 다른 컨테이너를 배치하고 컨테이너마다 배치 관리자를 다르게
할 수 있다. 이 점 기억하자.
'공부 > python' 카테고리의 다른 글
(python) tkinter을 통한 GUI 프로그래밍8 - 관련예제들2 (0) | 2020.01.18 |
---|---|
(python) tkinter을 통한 GUI 프로그래밍7 - tkinter의 이벤트 처리 (0) | 2020.01.17 |
(python) tkinter을 통한 GUI 프로그래밍5 - 애니메이션, 라디오 버튼, 체크박스, 리스트 박스 위젯 (0) | 2020.01.13 |
(python) tkinter을 통한 GUI 프로그래밍4 - 관련 예제들1 (0) | 2020.01.10 |
(python) tkinter을 통한 GUI 프로그래밍3 - tkinter를 이용한 그래픽 (0) | 2020.01.08 |