Tkinter의 Treeview 위젯은 데이터를 계층 구조로 표시할 때 사용됩니다. 이 구조에서 각 행은 파일이나 디렉터리를 나타낼 수 있으며, 각 디렉터리는 파일 또는 하위 디렉터리를 포함합니다. Treeview 위젯을 생성하려면 Treeview(parent, columns) 생성자를 사용하여 테이블 형태로 만들 수 있습니다.
Treeview 위젯의 항목은 tree.selection() 함수를 통해 항목을 선택한 후 편집하거나 삭제할 수 있습니다. 항목이 선택되면 해당 항목에 대해 삭제나 편집 등 다양한 작업을 수행할 수 있습니다.
예제 코드
# 필요한 라이브러리 임포트
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)
tree.heading("# 1", text="ID")
tree.column("# 2", anchor=CENTER)
tree.heading("# 2", text="Company")
# Treeview 위젯에 데이터 삽입
tree.insert('', 'end', text="1", values=('1', 'Honda'))
tree.insert('', 'end', text="2", values=('2', 'Hyundai'))
tree.insert('', 'end', text="3", values=('3', 'Tesla'))
tree.insert('', 'end', text="4", values=('4', 'Wolkswagon'))
tree.insert('', 'end', text="5", values=('5', 'Tata Motors'))
tree.insert('', 'end', text="6", values=('6', 'Renault'))
tree.pack()
def edit():
# 편집할 항목 선택
selected_item = tree.selection()[0]
tree.item(selected_item, text="blub", values=("foo", "bar"))
def delete():
# 삭제할 항목 선택
selected_item = tree.selection()[0]
tree.delete(selected_item)
# Treeview 항목을 편집하고 삭제하는 버튼 추가
edit_btn = ttk.Button(win, text="Edit", command=edit)
edit_btn.pack()
del_btn = ttk.Button(win, text="Delete", command=delete)
del_btn.pack()
win.mainloop()실행 결과
위 코드를 실행하면 자동차 모델 목록과 ID가 포함된 창이 화면에 표시됩니다.
특정 행을 선택한 후 편집(Edit) 또는 삭제(Delete) 버튼을 누르면 프로그램에 정의된 작업이 수행됩니다.
예를 들어, 네 번째 행을 선택하고 "Delete" 버튼을 클릭해 보겠습니다.
그러면 다음과 같은 결과가 출력됩니다.
선택한 행이 목록에서 사라지고, 마찬가지 방식으로 "Edit" 버튼을 클릭하면 선택된 항목의 값이 지정된 새 값으로 변경되는 것을 확인할 수 있습니다.