본문 바로가기

공부/python

(python) tkinter을 통한 GUI 프로그래밍6 - 배치 관리자, 격자 배치, 압축 배치, 절대 배치,

버튼이나 레이블 등의 위젯은 컨테이너 내부에 배치되어, 컨테이너 내부에 어떤 위치에

어떤 크기로 배치되는가를 프로그래머가 절대 좌표값으로 구체적으로 지정한다.

하지만, 이러한 방법은 플랫폼마다 위젯의 크기가 달라질 수 있다. 이를 해결하기 위해

파이썬에서는 위젯의 배치를 배치 관리자(layout manager)를 사용하여 자동화한다.

 

배치 관리자

컨테이너 안에 존재하는 위젯의 크기와 위치를 자동적으로 관리하는 객체이다.

파이썬에는 아래의 배치 관리자가 제공된다.

  • 격자(grid) 배치 관리자
  • 압축(pack) 배치 관리자
  • 절대(place) 배치 관리자

 

격자 배치 관리자

격차 배치 관리자(grid geometry manager)는 위젯(버튼, 레이블 등)을 테이블 형태로

배치한다.

 

아래의 예를 보자.

격자의 0번째 행과 0번째 열에 One 버튼을,

격자의 1번째 행과 1번째 열에 Two 버튼을 배치했다.

행 번호와 열 번호는 0부터 시작하는 것을 잊지말자.

 

다른 예를 보자.

빈공간에 레이블을 넣어봤다.

 

압축 배치 관리자

압축 배치 관리자(pack geometry manager)는 위젯을 최대한 붙여서 배치한다.

주로 위젯들을 세로로 차례로 배치하는데 사용된다.

 

아래의 예를 보자.

 

다른 예를 보자.

fill 옵션을 사용하면 위젯이 전체 컨테이너를 채우도록 할 수 있다.

여기서는 fillX로 지정하여 x방향으로 채웠다.

fill 옵션에는 X, Y, BOTH가 있다.

 

또 다른 예를 보자.

박스들을 왼쪽에서 오른쪽으로 배치하려면 side 매개 변수를 LEFT로 지정하면 된다.

 

절대 위치 배치 관리자

절대 위치 배치 관리자(place geometry manager)는 절대 위치를 사용하여 위젯을 배치한다.

x와 y 매개변수를 사용한다.

 

아래의 예를 보자.

 

하나의 컨테이너 안에 다른 컨테이너를 배치하고 컨테이너마다 배치 관리자를 다르게

할 수 있다. 이 점 기억하자.