Tkinter는 애플리케이션을 실행할 때 기본적으로 크기 조정이 가능한(resizable) 창을 생성합니다. 하지만 UI 레이아웃이 깨지는 것을 방지하거나 고정된 화면 구성을 유지하고 싶을 때는 사용자가 창 크기를 임의로 변경하지 못하도록 설정해야 합니다.
resizable() 메서드 활용하기
창 크기 조정을 비활성화하려면 resizable(height, width) 메서드를 사용합니다. 각 인자에 False를 전달하면 해당 방향으로의 크기 변경이 차단되며, True를 전달하면 크기 조정이 허용됩니다.
win.resizable(False, False)— 가로·세로 모두 크기 조정 불가win.resizable(True, False)— 세로(높이)만 조정 가능win.resizable(False, True)— 가로(너비)만 조정 가능
불리언 값 대신 None을 전달하는 방식(resizable(None, None))도 동일하게 작동하지만, 의미를 명확히 전달하기 위해 False 값을 사용하는 것이 일반적입니다.
예제 코드
# 필요한 라이브러리 임포트
from tkinter import *
# Tkinter 프레임 인스턴스 생성
win = Tk()
# 프레임의 크기 설정
win.geometry("600x250")
# 크기 조정 속성을 False로 설정
win.resizable(False, False)
# 창에 표시할 라벨 생성
Label(win, text="Hello World!", font=('Helvetica bold', 20),
anchor="center").pack(pady=20)
win.mainloop()실행 결과
위 코드를 실행하면 최대화 버튼과 마우스 드래그를 통해 창 크기를 변경할 수 없는 고정된 창이 표시됩니다.

추가 팁
크기 조정을 비활성화한 상태에서 창을 항상 화면 중앙에 배치하고 싶다면, update_idletasks()로 창 크기를 확인한 뒤 geometry()에 위치 좌표를 함께 지정하면 더욱 완성도 높은 UI를 만들 수 있습니다.