Python Tkinter Treeview - Iterating 'get_children' output

為{幸葍}努か 提交于 2019-12-24 04:01:03

问题


I am trying to later iterate through the data inside of the Treeview. I will then hope to be able to sort through it.

from tkinter import *
from tkinter.ttk import *
import pickle

root = Tk()

def treeData(event):
    children = tree.get_children()
    print(children)

entry = StringVar()
a = Entry(root, textvariable=entry)
a.grid(column=0,row=0)
a.bind("<Key>", function)

file_data = []
file = open('data.dat', 'rb')
while True:
    try:
        file_data.append(pickle.load(file))
    except EOFError:
        break
file.close()

column_names = ("Column 1", "Column 2")
tree = Treeview(root, columns=column_names)
tree['show'] = 'headings'
for x in file_data:
    a = tree.insert('', 'end', values=x)
for col in column_names: 
    tree.heading(col, text=col)

tree.grid(column=0, row=1)

In the function, called 'treeData' when I print(children) it outputs a list that looks similar to this - ('I001', 'I002', 'I003', 'I004')

I am hoping someone will know how to convert these pieces of data into what is actually shown in the row of the Treeview?

Thanks,


回答1:


What you are asking is documented in the official tkinter documentation for the Treeview widget.

The get_children method returns a list of item IDs, one for each child. The item method of the treeview will return a dictionary of data for a given item. Thus, you can iterate over the values with something like this:

for child in tree.get_children():
    print(tree.item(child)["values"])


来源:https://stackoverflow.com/questions/28685048/python-tkinter-treeview-iterating-get-children-output

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!