Tkinter에서는 다양한 방법으로 위젯(widget)을 윈도우 안에 배치할 수 있습니다. Tkinter의 지오메트리 매니저(Geometry Manager)는 pack(), place(), grid()라는 세 가지 메서드를 제공하며, 이를 통해 애플리케이션 윈도우 내에서 위젯의 위치를 설정할 수 있습니다.
각 메서드는 고유한 특징과 장단점을 가지고 있습니다. 만약 Tkinter 윈도우에서 버튼의 위치를 정확하게 지정하고 싶다면, 다른 방법보다 place(가로좌표, 세로좌표) 메서드를 사용하는 것이 가장 좋습니다. 이 메서드는 위젯의 위치를 결정하는 데 필요한 x, y 좌표 값을 직접 입력받아 원하는 지점에 위젯을 배치할 수 있게 해줍니다.
예제 코드
아래 샘플 코드는 place(x, y) 메서드를 사용하여 버튼 위젯을 윈도우의 원하는 위치에 배치하는 예제입니다.
# Tkinter 라이브러리 임포트
from tkinter import *
from tkinter import ttk
# Tkinter 프레임 인스턴스 생성
win = Tk()
# 윈도우 크기 정의
win.geometry("750x250")
def close_win():
win.destroy()
# 프레임에 버튼 생성
button = ttk.Button(win, text="Click", command=close_win)
button.place(x=325, y=125)
# 라벨 생성
Label(win, text="Click the Button to Close the Window", font=('Consolas 15')).pack()
win.mainloop()실행 결과
위 코드를 실행하면 버튼이 윈도우 중앙에 배치된 창이 화면에 나타납니다. geometry("750x250")으로 설정된 750×250 크기의 윈도우에서 버튼은 x축으로 325픽셀, y축으로 125픽셀 떨어진 지점에 위치하게 되어 결과적으로 화면 한가운데에 놓이게 됩니다.

참고: 세 가지 지오메트리 매니저 비교
- pack(): 위젯을 상하좌우 순서대로 자동 배치하며, 간단한 레이아웃에 적합합니다.
- grid(): 행(row)과 열(column) 기반의 표 형태로 위젯을 배치하며, 폼이나 계산기 UI처럼 구조화된 레이아웃에 유용합니다.
- place(): 픽셀 단위의 절대 좌표로 위젯을 배치하며, 위치를 세밀하게 제어해야 할 때 가장 적합합니다.
버튼 클릭 시 close_win() 함수가 호출되어 destroy() 메서드를 통해 윈도우가 종료되는 것도 확인할 수 있습니다.