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

Python 3.3에서 ttk.Treeview 열 너비와 가중치를 변경하는 방법

Tkinter 애플리케이션에서 대량의 데이터를 표시해야 할 때는 Treeview 위젯을 활용할 수 있습니다. Treeview는 행과 열로 구성된 테이블 형태로 데이터를 보여주기 때문에, 목록이나 표 형식의 정보를 직관적으로 나타내는 데 매우 유용합니다.

열 너비 설정하기

Treeview 위젯의 열 너비를 조정하려면 column() 메서드에서 width 속성과 stretch 속성을 함께 사용하면 됩니다.

  • width: 열의 고정 너비를 픽셀 단위로 지정합니다.
  • stretch: NO로 설정하면 창 크기가 변해도 해당 열의 너비가 늘어나지 않고 지정한 값 그대로 유지됩니다.

예제 코드

다음 예제에서는 프로그래밍 언어 목록을 담은 테이블을 생성합니다. 'ID' 열과 'Programming Language' 열의 너비를 각각 지정하고, stretch 옵션을 비활성화하여 창 크기와 무관하게 일정한 너비를 유지하도록 구성했습니다.

# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk

# tkinter 프레임 인스턴스 생성
win=Tk()

# tkinter 윈도우 크기 설정
win.geometry("700x350")

# Style 위젯 인스턴스 생성
style=ttk.Style()
style.theme_use('clam')

# Treeview 위젯 추가
tree=ttk.Treeview(win, column=("c1", "c2"), show='headings', height=8)
tree.column("# 1",anchor=CENTER, stretch=NO, width=100)
tree.heading("# 1", text="ID")
tree.column("# 2", anchor=CENTER, stretch=NO)
tree.heading("# 2", text="Programming Language")

# Treeview 위젯에 데이터 삽입
tree.insert('', 'end',text="1",values=('1','C++'))
tree.insert('', 'end',text="2",values=('2', 'Java'))
tree.insert('', 'end',text="3",values=('3', 'Python'))
tree.insert('', 'end',text="4",values=('4', 'Golang'))
tree.insert('', 'end',text="5",values=('5', 'JavaScript'))
tree.insert('', 'end',text="6",values=('6', 'C# '))
tree.insert('', 'end',text="7",values=('6', 'Rust'))
tree.insert('', 'end',text="8",values=('6', 'SQL'))

tree.pack()
win.mainloop()

실행 결과

위 코드를 실행하면 프로그래밍 언어 목록과 인덱스가 포함된 테이블이 화면에 표시됩니다. 첫 번째 열(ID)은 width 속성으로 지정한 100픽셀 너비로 고정되며, 두 번째 열(Programming Language) 역시 stretch가 비활성화되어 있어 콘텐츠에 맞는 너비를 유지합니다.

Python 3.3에서 ttk.Treeview 열 너비와 가중치를 변경하는 방법

만약 열 너비를 더 넓게 설정하고 싶다면 width 값을 원하는 픽셀 수로 변경하면 되고, 반대로 창 크기에 따라 열이 자동으로 늘어나기를 원한다면 stretch=YES로 설정하면 됩니다.