본문 바로가기

[Tkinter] 15강 place 레이아웃 개념 이해하기

@도마22026. 1. 28. 18:00
728x90


이 강의는 Tkinter GUI 강의 15강입니다

14강에서는
grid 레이아웃을 사용해
행과 열 기준으로 위젯을 배치하는 방법을 배웠습니다.

이번 강의에서는
Tkinter의 또 다른 레이아웃 방식인
place 레이아웃의 개념을 이해합니다.

이번 강의의 목표는 분명합니다.
place가 어떤 기준으로 위젯을 배치하는지 이해하고,
언제 사용해야 하는지 감각을 잡는 것입니다.


place 레이아웃이 필요한 이유

pack과 grid는
위젯을 자동으로 정렬해주는 방식입니다.

하지만 다음과 같은 화면을 만들려면
자동 정렬이 오히려 불편해집니다.

  • 정확한 좌표에 UI를 배치해야 할 때
  • 픽셀 단위로 위치를 맞춰야 할 때
  • 고정 해상도 화면을 만들 때

이런 경우에 사용하는 것이
place 레이아웃입니다.


place 레이아웃의 기본 개념

place는
좌표(x, y) 를 기준으로
위젯을 배치하는 방식입니다.

마치
화면 위에 점을 찍듯이
원하는 위치에 위젯을 직접 놓습니다.

핵심 개념은 다음 두 가지입니다.

  • x : 왼쪽에서부터의 거리
  • y : 위에서부터의 거리

place의 기본 사용 형태

place 레이아웃은
다음과 같은 형태로 사용합니다.

위젯.place(x=50, y=30)

이 코드는
왼쪽에서 50픽셀
위에서 30픽셀 떨어진 위치에
위젯을 배치하겠다는 의미입니다.


절대 좌표 배치 예제

먼저
가장 기본적인 place 사용 예제입니다.

import tkinter as tk


window = tk.Tk()
window.geometry("300x200")


tk.Label(window, text="Label 1").place(x=20, y=20)
tk.Label(window, text="Label 2").place(x=150, y=80)


window.mainloop()

실행하면
각 Label이
지정한 좌표 위치에
정확히 배치됩니다.


위젯 크기까지 직접 지정하기

place는
위치뿐만 아니라
위젯 크기(width, height) 도 직접 지정할 수 있습니다.

tk.Button(window, text="버튼").place(
x=50,
y=120,
width=100,
height=40
)

이 방식은
UI를 픽셀 단위로 설계해야 할 때
매우 유용합니다.


place는 창 크기에 영향을 받는다

place의 중요한 특징은
창 크기가 바뀌어도 위치가 자동으로 조정되지 않는다는 점입니다.

이를 직접 확인해 보겠습니다.

window.geometry("300x200")
tk.Label(window, text="고정 위치").place(x=100, y=80)

창 크기를 늘리거나 줄여도
Label은
항상 같은 좌표에 남아 있습니다.


상대 좌표 배치 (relx, rely)

place는
절대 좌표뿐만 아니라
상대 좌표 방식도 지원합니다.

tk.Label(window, text="가운데").place(relx=0.5, rely=0.5)

 

  • relx, rely 값은 0.0 ~ 1.0
  • 부모 위젯 크기를 기준으로 비율 계산

anchor를 사용한 정확한 정렬

상대 좌표를 사용할 때
anchor 옵션을 함께 쓰면
정확한 위치 제어가 가능합니다.

tk.Label(
window,
text="정확한 중앙"
).place(relx=0.5, rely=0.5, anchor="center")

 

이렇게 하면
텍스트 기준이 아니라
위젯 자체가 중앙에 배치됩니다.


place는 위치를 완전히 직접 제어한다

place의 가장 큰 특징은
모든 배치를 개발자가 직접 책임진다는 점입니다.

자동 정렬이 없기 때문에
UI 구조를 스스로 설계해야 합니다.

그래서
일반적인 앱 UI보다는
특정 목적의 화면에 적합합니다.


pack, grid, place의 성격 차이

지금까지 배운 레이아웃을 정리하면 다음과 같습니다.

pack

  • 순서 기반 배치
  • 단순한 화면에 적합

grid

  • 행·열 기반 배치
  • 구조적인 화면에 적합

place

  • 좌표 기반 배치
  • 정밀한 위치 제어에 적합

place를 언제 사용하면 좋은가

place는
다음과 같은 경우에 특히 적합합니다.

  • 고정 해상도 프로그램
  • 게임 UI
  • Canvas 기반 화면
  • 정확한 좌표 배치가 필요한 화면

입력 폼이나 설정 화면에는
grid가 더 적합합니다.


이번 강의 핵심 정리

이번 강의에서 꼭 기억해야 할 내용입니다.

  • place는 좌표(x, y) 기반 배치 방식이다
  • 픽셀 단위로 위치와 크기를 직접 제어한다
  • 자동 정렬 기능은 없다
  • 고정된 화면 구성에 적합하다

다음 강의 예고

다음 강의에서는
pack, grid, place 세 가지 레이아웃을 한 번에 비교합니다.

이제부터는
상황에 따라
어떤 레이아웃을 선택해야 할지
명확해질 것입니다.


728x90
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차