Tkinter에서 프레임의 정중앙에 객체(위젯)를 배치하려면 place 메서드를 활용하면 됩니다. 이 글에서는 실제 예제를 통해 버튼을 창의 가운데에 배치하는 방법을 단계별로 살펴보겠습니다.
구현 단계
- 필요한 라이브러리를 임포트하고 tkinter 프레임 인스턴스를 생성합니다.
- win.geometry 메서드를 사용해 프레임(윈도우)의 크기를 설정합니다.
- 버튼 위젯을 생성하고 적절한 텍스트로 라벨링합니다.
- place 메서드에 x, y 좌표값을 전달하여 버튼의 위치를 지정합니다.
- 위젯의 중심을 상대 좌표 0.5 위치에 배치합니다. 즉, (relx=0.5, rely=0.5)로 설정하고, anchor=CENTER 옵션을 추가하여 기준점을 위젯의 중앙으로 맞춥니다.
- 마지막으로 애플리케이션 윈도우의 mainloop를 실행합니다.
예제 코드
# Tkinter 라이브러리 임포트
from tkinter import *
from tkinter import ttk
# Tkinter 프레임 인스턴스 생성
win = Tk()
# 윈도우 크기 정의
win.geometry("750x350")
# 프레임 안에 버튼 생성
button = ttk.Button(win, text="Button at the Center")
button.place(relx=0.5, rely=0.5, anchor=CENTER)
win.mainloop()실행 결과
이 코드를 실행하면 다음과 같은 출력 창이 나타납니다.

참고: 반응형 중앙 정렬
이 방식의 장점은 윈도우 크기를 조절해도 버튼이 자동으로 화면 중앙에 위치한다는 점입니다. 직접 창 크기를 변경해 보면 버튼 위젯이 항상 중앙을 유지하는 것을 확인할 수 있습니다.
이는 relx와 rely가 픽셀 값이 아닌 부모 컨테이너 크기에 대한 상대 비율(0~1)로 동작하기 때문입니다. 따라서 고정 좌표 대신 상대 좌표를 사용하면 어떤 해상도나 창 크기에서도 일관된 중앙 정렬 레이아웃을 구현할 수 있습니다.