在Tkinter TreeView中删除和编辑项目

在Tkinter TreeView中删除和编辑项目

Tkinter是一个Python的用户界面(UI)编程模块。其TreeView(树视图)小部件可用于以层次结构呈现数据。本篇文章将讨论如何在Tkinter TreeView中删除和编辑项目。

创建Tkinter TreeView

首先,让我们创建一个基本的Tkinter TreeView。以下代码将创建一个Tkinter窗口,该窗口包含一个带有“Name”和“Age”列的TreeView,以及“Add Item”按钮:

import tkinter as tk
from tkinter import ttk

def add_item():
    name = name_entry.get()
    age = age_entry.get()
    tree.insert("", tk.END, text=name, values=(age))

window = tk.Tk()
window.title("TreeView Example")

tree = ttk.Treeview(window, selectmode='browse', columns=('Name', 'Age'), height=10)
tree.heading('#0', text='Name')
tree.heading('#1', text='Age')
tree.column('#1', stretch=tk.YES)
tree.column('#0', width=150, minwidth=150, stretch=tk.YES)

name_entry = tk.Entry(window, width=30)
name_label = tk.Label(window, text="Name: ")
age_entry = tk.Entry(window, width=30)
age_label = tk.Label(window, text="Age: ")
add_button = tk.Button(window, text="Add Item", command=add_item)

name_label.pack(side=tk.LEFT)
name_entry.pack(side=tk.LEFT)
age_label.pack(side=tk.LEFT)
age_entry.pack(side=tk.LEFT)
add_button.pack(side=tk.LEFT)

tree.pack(expand=True, fill=tk.BOTH)

window.mainloop()

删除项目

要删除Tkinter TreeView中的项目,请使用其delete方法和项目的id。以下代码将通过select按钮获取所选项目的id,并将其传递给delete方法,以便在点击Delete Selected按钮时删除该项目:

def delete_item():
    selection = tree.selection()
    for selected in selection:
        tree.delete(selected)

delete_button = tk.Button(window, text="Delete Selected", command=delete_item)
delete_button.pack(side=tk.LEFT)

编辑项目

要编辑在Tkinter TreeView中存在的项目,您需要为该项目创建一个编辑框,以便用户可以编辑其中的内容。以下代码将为所选项目的名称添加一个编组框,其中包含用于编辑名称的输入框和“Update Name”按钮:

def edit_item():
    selection = tree.selection()
    try:
        selected = selection[0]
        name = tree.item(selected)['text']

        edit_window = tk.Toplevel()
        edit_window.title("Edit Item")

        name_entry = tk.Entry(edit_window, width=30)
        name_entry.insert(0, name)

        def update_item():
            new_name = name_entry.get()
            tree.item(selected, text=new_name)
            edit_window.destroy()

        update_button = tk.Button(edit_window, text="Update Name", command=update_item)

        name_entry.pack(side=tk.LEFT)
        update_button.pack(side=tk.LEFT)
    except IndexError:
        pass

edit_button = tk.Button(window, text="Edit Selected", command=edit_item)
edit_button.pack(side=tk.LEFT)

以上代码将在客户端点击“Edit Selected”按钮时调用edit_item函数。函数将获得所选项目的ID和名称,并将其用于填充一个新的Toplevel窗口,该窗口显示通过Entry小部件输入的用户可编辑名称。当用户单击“Update Name”按钮时,update_item函数将更新在TreeView中选择的名称。

结论

以上是如何在Tkinter TreeView中删除和编辑项目的完整步骤。在这些示例的基础上,您可以轻松扩展Treeview以满足您的应用程序需求。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程