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

Tkinter Treeview에서 항목 편집 및 삭제하기

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" 버튼을 클릭하면 선택된 항목의 값이 지정된 새 값으로 변경되는 것을 확인할 수 있습니다.