Python tkinter Treeview (그리드 표)

Python tkinter Treeview에 대해 살펴보겠습니다.

Treeview는 그리드 표를 출력하는 데 사용하는 유용한 위젯입니다.

Tkinter Treeview

Treeview 만들기

Treeview는 tkinter.ttk 모듈에 Treeview(window) 함수로 생성합니다.

매개변수로 Treeview가 생성될 window를 넣어준 뒤 화면에 배치합니다.

import tkinter
import tkinter.ttk

window = tkinter.Tk()
window.title("Tkinter Treeview")
window.geometry("600x400+200+200")

treeview = tkinter.ttk.Treeview(window, 
    column=["name", "age", "grade"], 
    displaycolumns=["name", "age", "grade"])
treeview.pack()

Treeview 생성시 옵션으로 column ( 칼럼의 이름 ), displaycolumns ( 칼럼 순서 )를 설정해주었습니다.

 

Treeview 컬럼 설정 하기

Treeview의 컬럼과 헤더 부분 설정을 해줍니다.

treeview.column("name", width=100, anchor="center")
treeview.heading("name", text="이름", anchor="center")

treeview.column("age", width=50, anchor="center")
treeview.heading("age", text="나이", anchor="center")

treeview.column("grade", width=50, anchor="center")
treeview.heading("grade", text="등급", anchor="center")

# 컬럼제목만 보이게함
treeview["show"] = "headings"

 

 

Treeview 표에 행 입력하기

treeValueList = [("Aiden", 20, "A"),
                 ("Matthew", 19, "B"),
                 ("John", 21, "C")]

for i in range(len(treeValueList)):
    treeview.insert("", "end", text="", values=treeValueList[i], iid=i)
    
window.mainloop()

tuple형태의 데이터를 treeview에 입력해줍니다.

이 정도로 기본적인 사용법은 마치고

메서드 및 옵션들에 대해 살펴보겠습니다.

 

 

Treeview 함수들

이름 기능
column(column, option) 표 열의 속성
column : #0, #1 또는 열 이름으로 컬럼선택
<option>
anchor(문자열 정렬) : n, e, w, s, ne, nw, se, sw, center
width: 열 너비
minwidth: 열 최소 너비
stretch(위젯 크기 조정시 열 너비조정) : True/False
heading(column, option) 표 헤더의 속성
column : #0, #1 또는 열 이름으로 컬럼선택
<option>
text: 열 헤더이름
image: 열 헤더 이미지
anchor(문자열 정렬) : n, e, w, s, ne, nw, se, sw, center
command: 헤더 클릭시 실행할 함수
insert(상위항목, 삽입 위치, option) insert > 표에 항목 추가
item > iid 값에 해당하는 항목을 수정
<option>
text: 표에 표시할 텍스트
image: 표에 포함할 이미지
values: 표 행에 포함될 항목들
iid: 표의 고유값
item(iid, option)
move(iid, 상위 항목, 삽입 위치) iid 값을 가진 항목을 상위항목의 삽입 위치로 이동
delete(iid) iid 값을 가진 항목을 삭제
detatch(iid) iid 값을 가진 항목을 연결 해제 및 숨김
index(iid) iid 값을 가진 항목의 index 반환
focus(iid) iid 값을 가진 항목에 포커스
get_children() 표의 하위 항목들 반환
get_children(iid) iid 값을 가진 항목 반환
exists(iid) iid 값을 가진 항목이 있는지 여부 반환
next(iid) iid 값을 가진 항목의 다음항목 iid 값 반환
prev(iid) iid 값을 가진 항목의 이전항목 iid 값 반환
see(iid) iid 값을 가진 항목이 보이는지 여부 반환
selection_set(iid) iid 값을 가진 항목 선택
selection_remove(iid) iid 값을 가진 항목 선택 취소
selection_toggle(iid) iid 값을 가진 항목 토글 (선택반전)
xview() 가로스크롤 연결
yview() 세로스크롤 연결

 

Treeview 옵션들

이름 기능 기본값 속성
height 표의 행 높이 10 숫자
padding 표의 내부여백 0 숫자
columns 표의 열 이름 설정   리스트
displaycolumns 표의 열 순서 설정   리스트
selectmode 표의 선택형식 설정 extended extended : Ctrl또는 Shift키 활용하여 다중선택
browse: 하나의 항목만 선택
none: 선택 불가
show 표의 제목 표시여부 tree headings tree headings: 행 / 열 제목 표시
tree: 행 제목만 표시
headings: 열 제목만 표시
class_ 클래스 설정