Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ลบและแก้ไขรายการใน Tkinter TreeView


Widget Treeview ของ Tkinter ใช้แสดงข้อมูลในโครงสร้างลำดับชั้น ในโครงสร้างนี้ แต่ละแถวอาจแทนไฟล์หรือไดเรกทอรี แต่ละไดเรกทอรีมีไฟล์หรือไดเรกทอรีเพิ่มเติม หากต้องการสร้าง Treeview widget ให้ใช้คอนสตรัคเตอร์ Treeview(parent, columns) สร้างตาราง

รายการใน Treeview widget สามารถแก้ไขและลบได้โดยเลือกไอเท็มด้วยฟังก์ชัน tree.selection() เมื่อเลือกไอเท็มแล้ว สามารถดำเนินการลบหรือแก้ไขได้

ตัวอย่าง

# Import the required libraries
from tkinter import *
from tkinter import ttk

# Create an instance of tkinter frame
win = Tk()
# Set the size of the tkinter window
win.geometry("700x350")

# Create an instance of Style widget
style = ttk.Style()
style.theme_use('clam')

# Add a Treeview widget
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")

# Insert the data in Treeview widget
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():
    # Get selected item to Edit
    selected_item = tree.selection()[0]
    tree.item(selected_item, text="blub", values=("foo", "bar"))

def delete():
    # Get selected item to Delete
    selected_item = tree.selection()[0]
    tree.delete(selected_item)

# Add Buttons to Edit and Delete the Treeview items
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

ลบและแก้ไขรายการใน Tkinter TreeView

หากเลือกแถวและกดปุ่ม edit หรือ delete จะดำเนินการตามที่โปรแกรมกำหนด

เลือกแถวที่ 4 และคลิกปุ่ม "Delete"

ลบและแก้ไขรายการใน Tkinter TreeView

จะได้ผลลัพธ์ดังนี้

ลบและแก้ไขรายการใน Tkinter TreeView