Tkinter — популярный набор инструментов с графическим интерфейсом для Python, а виджет Treeview обычно используется для отображения иерархических данных в табличном формате. В этой статье мы обсудим различные методы заполнения данных в виджете Treeview с помощью Tkinter. Мы рассмотрим различные подходы и приведем примеры кода, которые помогут вам понять процесс реализации.
Метод 1: вставка данных построчно
Самый простой способ заполнить данные в Treeview — вставить строки одну за другой с помощью метода insert
. Вот пример:
import tkinter as tk
from tkinter import ttk
data = [
("John", 25, "USA"),
("Emily", 30, "UK"),
("David", 28, "Australia"),
]
root = tk.Tk()
tree = ttk.Treeview(root, columns=("Name", "Age", "Country"), show="headings")
# Add column headings
tree.heading("Name", text="Name")
tree.heading("Age", text="Age")
tree.heading("Country", text="Country")
# Insert data row by row
for item in data:
tree.insert("", "end", values=item)
tree.pack()
root.mainloop()
Метод 2: заполнение данных из списка списков
Другой подход заключается в заполнении Treeview с использованием списка списков. Каждый подсписок представляет собой строку данных. Вот пример:
import tkinter as tk
from tkinter import ttk
data = [
["John", 25, "USA"],
["Emily", 30, "UK"],
["David", 28, "Australia"],
]
root = tk.Tk()
tree = ttk.Treeview(root, columns=("Name", "Age", "Country"), show="headings")
# Add column headings
tree.heading("Name", text="Name")
tree.heading("Age", text="Age")
tree.heading("Country", text="Country")
# Insert data from a list of lists
for i, item in enumerate(data):
tree.insert("", "end", iid=i, values=item)
tree.pack()
root.mainloop()
Метод 3: заполнение данных из словаря
Вы также можете заполнить Treeview, используя словарь, где ключи представляют имена столбцов, а значения представляют данные. Вот пример:
import tkinter as tk
from tkinter import ttk
data = [
{"Name": "John", "Age": 25, "Country": "USA"},
{"Name": "Emily", "Age": 30, "Country": "UK"},
{"Name": "David", "Age": 28, "Country": "Australia"},
]
root = tk.Tk()
tree = ttk.Treeview(root, columns=("Name", "Age", "Country"), show="headings")
# Add column headings
tree.heading("Name", text="Name")
tree.heading("Age", text="Age")
tree.heading("Country", text="Country")
# Insert data from a dictionary
for i, item in enumerate(data):
tree.insert("", "end", iid=i, values=[item[column] for column in tree["columns"]])
tree.pack()
root.mainloop()
Метод 4: заполнение данных из фрейма данных Pandas
Если вы работаете с анализом или манипулированием данными, вы можете напрямую заполнить Treeview из фрейма данных Pandas. Вот пример:
import tkinter as tk
from tkinter import ttk
import pandas as pd
# Create a sample DataFrame
data = {
"Name": ["John", "Emily", "David"],
"Age": [25, 30, 28],
"Country": ["USA", "UK", "Australia"]
}
df = pd.DataFrame(data)
root = tk.Tk()
tree = ttk.Treeview(root, columns=("Name", "Age", "Country"), show="headings")
# Add column headings
tree.heading("Name", text="Name")
tree.heading("Age", text="Age")
tree.heading("Country", text="Country")
# Insert data from a Pandas DataFrame
for i, row in df.iterrows():
values = row.values.tolist()
tree.insert("", "end", iid=i, values=values)
tree.pack()
root.mainloop()
В этой статье мы рассмотрели различные методы заполнения данных в виджете Treeview с помощью Tkinter. Мы обсудили четыре подхода: вставка данных построчно, заполнение данных из списка списков, использование словаря и заполнение данными из Pandas DataFrame. Эти методы обеспечивают гибкость в обработке данных и позволяют выбрать наиболее подходящий подход с учетом ваших требований. Виджет Tkinter Treeview в сочетании с этими методами заполнения данных может помочь вам эффективно создавать интерактивные и информативные приложения с графическим интерфейсом.