표(table)는 데이터를 행(row)과 열(column) 형태로 정렬하여 보여주는 요소입니다. 애플리케이션에 표 형태의 GUI를 구성해 두면 NumPy, Pandas, Matplotlib 같은 파이썬 라이브러리와 연동해 데이터를 손쉽게 조회하고 조작할 수 있습니다. Tkinter에서는 Treeview 위젯을 사용하면 별도의 외부 패키지 없이도 표를 그리고 그 안에 데이터를 삽입할 수 있습니다.
Treeview 위젯 소개
Treeview는 tkinter.ttk 모듈에서 제공하는 위젯으로, 원래는 계층형 트리 구조를 표현하기 위해 사용됩니다. 하지만 show 옵션을 'headings'로 지정하고 열(column) 정보를 설정하면 마치 스프레드시트처럼 생긴 표 형태로 활용할 수 있습니다. 위젯은 Treeview(parent, column, **options) 생성자로 정의합니다.
예제 코드
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk
# tkinter 프레임 인스턴스 생성
win = Tk()
# 윈도우 크기 설정
win.geometry("700x350")
s = ttk.Style()
s.theme_use('clam')
# Treeview 위젯 추가
tree = ttk.Treeview(win, column=("c1", "c2", "c3"), show='headings', height=5)
tree.column("# 1", anchor=CENTER)
tree.heading("# 1", text="ID")
tree.column("# 2", anchor=CENTER)
tree.heading("# 2", text="FName")
tree.column("# 3", anchor=CENTER)
tree.heading("# 3", text="LName")
# Treeview 위젯에 데이터 삽입
tree.insert('', 'end', text="1", values=('1', 'Joe', 'Nash'))
tree.insert('', 'end', text="2", values=('2', 'Emily', 'Mackmohan'))
tree.insert('', 'end', text="3", values=('3', 'Estilla', 'Roffe'))
tree.insert('', 'end', text="4", values=('4', 'Percy', 'Andrews'))
tree.insert('', 'end', text="5", values=('5', 'Stephan', 'Heyward'))
tree.pack()
win.mainloop()코드 핵심 포인트
- column=("c1", "c2", "c3"): 표를 구성할 세 개의 열을 정의합니다.
- show='headings': 트리 계층 대신 열 머리글 중심의 표 형태로 표시합니다.
- tree.heading(): 각 열 상단에 표시할 제목(ID, FName, LName)을 지정합니다.
- anchor=CENTER: 셀 내용을 가운데 정렬합니다.
- tree.insert('', 'end', ...): 표 맨 아래 행에 데이터를 한 줄씩 추가합니다.
실행 결과
위 코드를 실행하면 ID, 이름(FName), 성(LName) 세 개의 열과 다섯 개의 행으로 구성된 표가 담긴 윈도우가 화면에 나타납니다.
