Как программно выбрать ячейку и получить содержимое в Tkinter Treeview? - PullRequest
0 голосов
/ 05 августа 2020

У меня есть Tkinter Treeview, и я sh программно (то есть не выбранный пользователем) выбираю ячейку в сетке и ее содержимое. Я хоть убей не могу понять, как это сделать. Пожалуйста, помогите! Спасибо.

1 Ответ

0 голосов
/ 05 августа 2020

Если вы определяете древовидное представление следующим образом:

# 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', '']}

Следовательно, это просто вопрос правильного сохранения идентификаторов каждой строки, чтобы вы могли впоследствии использовать их для извлечения значения строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...