python - 如何以编程方式选择一个单元格并检索 Tkinter Treeview 中的内容?
问题描述
我有一个 Tkinter Treeview,我希望以编程方式(即未由用户选择)挑选出网格中的一个单元格及其内容。我一生无法弄清楚如何做到这一点。请帮忙!谢谢。
解决方案
如果您定义这样的树视图:
# 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,以便您以后可以使用它们来检索该行的值。
推荐阅读
- react-native - componentDidMount 中的 react-native-sound
- r - 如何做出在两个日期列之间/中找到一年的逻辑语句?
- r - 如何在 Cytoscape 3 中添加节点大小作为图例?
- python - Python flask,一种更简洁的更新 SQLAlchemy 记录的方法
- c# - 如何实例化具有通用列表的类并在运行时初始化列表而不使用动态或反射
- azure-devops - 如何将 OnPrem Azure DevOps Server 与云端集成?
- python - 在 matplotlib 中用矩形插值绘制一条线
- c# - 我可以在 linq 语句的选择部分有条件地添加一个对象吗
- python - 缓存flask app函数基于url请求字符串
- angularjs - 如果值来自ng-model,angularjs在相应的HTMLinput上调用select不会突出显示单元格内容?