Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Tkinter로 화면 크기(너비·높이)와 색상 깊이 구하기

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 메서드를 활용하면 외부 라이브러리 없이도 화면 정보를 손쉽게 얻을 수 있으며, 창을 화면 중앙에 배치하거나 해상도에 따라 반응형 레이아웃을 구성할 때 매우 유용하게 사용할 수 있습니다.