Tkinter 애플리케이션을 개발하다 보면 GUI 창을 화면의 정중앙에 배치해야 하는 경우가 자주 발생합니다. 이를 구현하는 가장 간단한 방법은 tk::PlaceWindow 메서드를 활용하는 것입니다. 이 메서드에 최상위(toplevel) 창을 인자로 전달하면 해당 창을 화면 중앙에 자동으로 배치할 수 있습니다.
또한, geometry() 함수를 사용하여 창의 크기와 좌표를 직접 계산·설정함으로써 프로그래밍 방식으로 창을 중앙에 맞출 수도 있습니다.
방법 1: tk::PlaceWindow 메서드 사용
다음은 eval() 함수와 함께 tk::PlaceWindow 명령어를 사용하여 창을 중앙에 배치하는 예제입니다.
# tkinter 라이브러리 임포트
from tkinter import *
# tkinter 프레임 인스턴스 생성
win = Tk()
# 창 크기 설정
win.geometry("600x250")
# 창을 화면 중앙에 배치
win.eval('tk::PlaceWindow . center')
win.mainloop()방법 2: geometry()로 좌표 직접 계산
화면 해상도를 조회한 뒤 창의 시작 좌표를 직접 계산하는 방식도 널리 사용됩니다.
from tkinter import *
win = Tk()
# 화면 크기 조회
screen_width = win.winfo_screenwidth()
screen_height = win.winfo_screenheight()
window_width = 600
window_height = 250
# 중앙 좌표 계산
center_x = int((screen_width - window_width) / 2)
center_y = int((screen_height - window_height) / 2)
# 크기와 위치를 함께 설정
win.geometry(f"{window_width}x{window_height}+{center_x}+{center_y}")
win.mainloop()실행 결과
위 코드를 실행하면 화면 정중앙에 위치한 600x250 크기의 창이 생성됩니다. 두 방법 모두 결과는 동일하지만, tk::PlaceWindow 방식이 코드가 더 간결하여 복잡한 계산 없이 손쉽게 창을 중앙 정렬할 수 있다는 장점이 있습니다.