본문 바로가기
파이썬코드공유

Tkinter Treeview 행 높이 row height 설정하기

by 하이어시스템 2024. 4. 5.
반응형

안녕하세요. 하이어시스템입니다.

 

Tkinter에서 Treeview를 이용하여 개발하다 보면 각 PC 마다 또는 노트북에서 실행할 경우 정상적으로 보이던 화면이 다르게 출력되는 경우가 있습니다. 이것은 각 PC의 해상도가 차이나 배율 설정 폰트의 크기차이 등으로 발생합니다.

각 PC마다 다르게 설정될 수 있는 배율 및 해상도

 

이런 경우에는 Treeview의 행 높이를 고정으로 설정하여 UI 화면이 디바이스에 관계없이 고정적을 출력될 수 있도록 할 수 있습니다.

 

style = ttk.Style(win)
style.configure("Treeview", rowheight=20)

 

이 때 rowheight 는 font size의 크기에 비례하여 동적으로 설정하면 더 효과적인 코드를 작성할 수 있습니다.

 

font = Font(family="Arial", size=16, weight="bold")
line_height = font.metrics("linespace")

style = ttk.Style(win)
style.configure("Treeview", rowheight=line_height)

 

이렇게 코드를 작성하면 Treeview Font Size에 비례하여 동적으로 적절한 rowheight 를 설정할 수 있습니다.

 

1. rowheight 가 폰트 사이즈 대비 낮게 설정 : UI 하단에 여백 발생

 

2. rowheight 가 폰트 사이즈 대비 높게 설정 : UI height를 초과하므로 짤림 현상 발생

반응형