Tkinter Treeview 删除项目
在Treeview控件中可以使用delete( )方法删除所选的项目,下面将以实例说明。
示例1
删除所选的项目,这个程序在建立Treeview控件时设置selectmode=EXTENDED,相当于一次可以选择多项,第二个选项在单击鼠标时可以同时按Ctrl键,可以选择不连续的选项。如果第二个选项在单击鼠标时同时按Shift键,可以选择连续的选项。这个程序下方有Remove按钮,单击此按钮可以删除所选项目。
from tkinter import *
from tkinter.ttk import *
def removeItem():
iids = tree.selection()
for iid in iids:
tree.delete(iid)
root = Tk()
root.title("apidemos.com")
stateCity = {"Illinois": "Chicago", "California": "Los Angeles",
"Texas": "Houston", "Washington": "Seattle",
"Jiangsu": "Nanjing", "Shandong": "Qingdao",
"Guangdong": "Guangzhou", "Fujian": "Xiamen"}
# 建立Treeview,可以有多项选择selectmode=EXTENDED
tree = Treeview(root,columns=("cities"),selectmode=EXTENDED)
# 建立栏标题
tree.heading("#0",text="State")
tree.heading("cities",text="City")
# 格式栏位
tree.column("cities",anchor=CENTER)
# 建立内容
for state in stateCity.keys():
tree.insert("",index=END,text=state,values=stateCity[state])
tree.pack()
rmBtn = Button(root,text="Remove",command=removeItem)
rmBtn.pack(pady=5)
root.mainloop()
输出:
上述程序当单击Remove按钮时会执行第4~7行的removeItem( )方法,这时会先执行第5行,如下所示。
iids = tree.selection()
上述方法会将目前选项传给iids,iids的数据类型是元组,所以第6、7行是循环可以遍历此元组,然后依次删除所选的项目。