我正在尝试删除Treeview中的每一列。 我使用for循环删除所有内容,但它只给我错误:
TypeError: must be str, not int
我的代码:
from tkinter import *
from tkinter import ttk
class test:
root = Tk()
tree = ttk.Treeview(root)
tree["columns"] = ("A")
tree.column("#0", width=100)
tree.heading("#0", text="Values")
tree.pack()
tree.insert("", 0, text="Hi", values=("1A"))
tree.insert("", 0, text="Hi", values=("0A"))
for x in tree:
tree.delete(x)
root.mainloop()
test()
答案 0 :(得分:1)
您无法使用for x in tree
遍历树的子项,您需要使用get_children(parent)
方法。它返回项parent
的子项列表。所以要清除树,你可以做到
for x in tree.get_children(''):
tree.delete(x)
因为''
是树根的id。
以下是一个例子:
import tkinter as tk
from tkinter import ttk
def clear_tree():
for x in tree.get_children(''):
tree.delete(x)
root = tk.Tk()
tree = ttk.Treeview(root)
tree["columns"] = ("A")
tree.column("#0", width=100)
tree.heading("#0", text="Values")
tree.pack()
tree.insert("", 0, text="Hi", values=("1A"))
tree.insert("", 0, text="Hi", values=("0A"))
ttk.Button(root, text='Clear', command=clear_tree).pack()
root.mainloop()