在 TreeView Tkinter 中删除和编辑项目 [英] Delete and Edit items in TreeView Tkinter

查看:34
本文介绍了在 TreeView Tkinter 中删除和编辑项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在 Tkinter 的 TreeView 中删除一行.

I want to delete a single row in a TreeView in Tkinter.

我知道这个方法:

def delButton(self):
    x = main.tree.get_children()
    for item in x:
        main.tree.delete(item)

删除整棵树.但我只想删除一行.我该怎么做?

deletes the whole tree. But I want to delete only one row. How can I do this?

此外,我还想知道如何编辑 TreeView 行.

Moreover, I want to know how to edit a TreeView row as well.

推荐答案

您不是删除整个树,而是删除根项中的所有子项,因为您对迭代中的每个项都使用了 delete.您可以使用 if 语句来确定您想要哪个项目,或者您可以使用 selected_item = tree.selection()[0] 获取所选项目并删除它.使用 .item() 方法,您可以完全访问要修改的项目.示例:

You are not deleting the whole tree you are just deleting all children from the root item, because you use delete for each item in your iteration. You can use a ifstatement to determine which item you want, or you can get the selected item with selected_item = tree.selection()[0] and delete it. With the .item()method you can full access to the item for modification. Example:

from Tkinter import Tk, Button
import ttk


root = Tk()

tree = ttk.Treeview(root)

tree["columns"]=("one","two")
tree.column("one", width=100 )
tree.column("two", width=100)
tree.heading("one", text="coulmn A")
tree.heading("two", text="column B")

tree.insert("" , 0,    text="Line 1", values=("1A","1b"))

id2 = tree.insert("", 1, "dir2", text="Dir 2")
tree.insert(id2, "end", "dir 2", text="sub dir 2", values=("2A","2B"))

##alternatively:
tree.insert("", 3, "dir3", text="Dir 3")
tree.insert("dir3", 3, text=" sub dir 3",values=("3A"," 3B"))

def edit():
    x = tree.get_children()
    for item in x: ## Changing all children from root item
        tree.item(item, text="blub", values=("foo", "bar"))

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

tree.pack()
button_del = Button(root, text="del", command=delete)
button_del.pack()
button_del = Button(root, text="edit", command=edit)
button_del.pack()

root.mainloop()

这篇关于在 TreeView Tkinter 中删除和编辑项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆