Tkinter는 Python 프로그램에 GUI 프로그래밍 기능을 제공하는 표준 라이브러리입니다. GUI 애플리케이션을 개발할 때는 창 크기나 해상도에 맞춰 레이아웃을 구성해야 하는 경우가 많은데, 이를 위해서는 현재 화면의 크기를 정확히 파악하는 것이 중요합니다.
이 글에서는 Tkinter가 제공하는 winfo 계열 메서드를 사용해 화면의 너비와 높이를 픽셀(pixel) 단위와 밀리미터(mm) 단위로 각각 구하는 방법, 그리고 화면의 색상 깊이(depth)까지 확인하는 방법을 소개합니다.
주요 winfo 메서드
winfo_screenwidth(): 화면 너비를 픽셀 단위로 반환winfo_screenheight(): 화면 높이를 픽셀 단위로 반환winfo_screenmmwidth(): 화면 너비를 밀리미터(mm) 단위로 반환winfo_screenmmheight(): 화면 높이를 밀리미터(mm) 단위로 반환winfo_screendepth(): 화면의 색상 깊이(픽셀당 비트 수)를 반환
예제 코드
from tkinter import *
# tkinter 윈도우 생성
base = Tk()
# 화면의 높이와 너비를 픽셀 및 mm 단위로 가져오기
length_1 = base.winfo_screenheight() # 높이 (픽셀)
width_1 = base.winfo_screenwidth() # 너비 (픽셀)
length_2 = base.winfo_screenmmheight() # 높이 (mm)
width_2 = base.winfo_screenmmwidth() # 너비 (mm)
# 화면 색상 깊이
screendepth = base.winfo_screendepth()
print("\n width x length (in pixels) = ", (width_1, length_1))
print("\n width x length (in mm) = ", (width_2, length_2))
print("\n Screen depth = ", screendepth)
mainloop()
실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
width x length (in pixels) = (1600, 900) width x length (in mm) = (423, 238) Screen depth = 32
실행 결과를 보면 화면 해상도는 1600×900 픽셀이며, 물리적 크기로는 약 423mm × 238mm임을 알 수 있습니다. 색상 깊이가 32로 출력된 것은 하나의 픽셀을 표현하는 데 32비트(RGBA 등)가 사용된다는 의미입니다.
이처럼 Tkinter의 winfo 메서드를 활용하면 외부 라이브러리 없이도 화면 정보를 손쉽게 얻을 수 있으며, 창을 화면 중앙에 배치하거나 해상도에 따라 반응형 레이아웃을 구성할 때 매우 유용하게 사용할 수 있습니다.