首页 > 解决方案 > 如何以编程方式选择一个单元格并检索 Tkinter Treeview 中的内容?

问题描述

我有一个 Tkinter Treeview,我希望以编程方式(即未由用户选择)挑选出网格中的一个单元格及其内容。我一生无法弄清楚如何做到这一点。请帮忙!谢谢。

标签: pythontkintertreeview

解决方案


如果您定义这样的树视图:

# Import requrired libraries/packages
from tkinter import Tk, W, NO, ttk, TOP, X

# Create intance of tkinter
root = Tk()

# Create the treeview
tree=ttk.Treeview(root)

# Define columns
tree["columns"]=("one","two","three")
tree.column("#0", width=270, minwidth=270, stretch=NO)
tree.column("one", width=150, minwidth=150, stretch=NO)
tree.column("two", width=400, minwidth=200)
tree.column("three", width=80, minwidth=50, stretch=NO)

# Define headings
tree.heading("#0",text="Name",anchor=W)
tree.heading("one", text="Date modified",anchor=W)
tree.heading("two", text="Type",anchor=W)
tree.heading("three", text="Size",anchor=W)

# Define some rows
# Level 1
folder1=tree.insert("", 1, "", text="Folder 1", values=("23-Jun-17 11:05","File folder",""))
tree.insert("", 2, "", text="text_file.txt", values=("23-Jun-17 11:25","TXT file","1 KB"))
# Level 2
tree.insert(folder1, "end", "", text="photo1.png", values=("23-Jun-17 11:28","PNG file","2.6 KB"))
tree.insert(folder1, "end", "", text="photo2.png", values=("23-Jun-17 11:29","PNG file","3.2 KB"))
tree.insert(folder1, "end", "", text="photo3.png", values=("23-Jun-17 11:30","PNG file","3.1 KB"))

# Packing
tree.pack(side=TOP,fill=X)

root.mainloop()

folder1然后,您可以按如下方式检索第一行的值(例如) :

tree.item(folder1)

输出(values并且text是您感兴趣的键):

{'image': '', 'open': 0, 'tags': '', 'text': 'Folder 1', 'values': ['23-Jun-17 11:05', 'File folder', '']}

因此,只需正确保存每一行的 id,以便您以后可以使用它们来检索该行的值。


推荐阅读