在 Python 中获取 Treeview 的值

在 Python 的 GUI 编程中,Tkinter 是一个非常流行的库,而 TreeviewTkinter 中用于显示分层数据的一种控件。本文将介绍如何在 Tkinter 中使用 Treeview,并展示如何获取其中的数据值。

什么是 Treeview?

Treeview 控件用于以树形结构展示数据,适用于显示有层级关系的信息,如文件系统的目录结构、xml 数据等。每个节点可以展开和折叠,便于用户查看。

Treeview 的基本用法

首先,我们需要创建一个简单的 Treeview 示例。以下代码创建了一个基本的窗口,显示一个 Treeview 控件,并添加了一些数据。

import tkinter as tk
from tkinter import ttk

# 创建主窗口
root = tk.Tk()
root.title("Treeview 示例")

# 创建 Treeview 控件
tree = ttk.Treeview(root)
tree.pack(fill=tk.BOTH, expand=True)

# 添加列
tree["columns"] = ("Name", "Age")
tree.column("#0", width=100)
tree.column("Name", width=100)
tree.column("Age", width=50)

# 添加标题
tree.heading("#0", text="ID")
tree.heading("Name", text="姓名")
tree.heading("Age", text="年龄")

# 插入数据
tree.insert("", "end", iid=1, text="1", values=("Alice", 30))
tree.insert("", "end", iid=2, text="2", values=("Bob", 25))
tree.insert("", "end", iid=3, text="3", values=("Charlie", 35))

# 显示窗口
root.mainloop()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
获取 Treeview 的值

现在我们已经创建了一个基本的 Treeview,接下来,我们将讨论如何获取用户选择的项数据。我们可以使用 selection() 方法获取当前选择的项,然后用 item() 方法获取其值。

以下是一个完整的示例代码,展示如何获取选定行的数据。

import tkinter as tk
from tkinter import ttk

def get_selected_item():
    selected_item = tree.selection()[0]  # 获取选择的项
    item_values = tree.item(selected_item)  # 获取项的信息
    print("选中的项数据:", item_values['text'], item_values['values'])  # 打印数据

root = tk.Tk()
root.title("Treeview 示例")

tree = ttk.Treeview(root)
tree.pack(fill=tk.BOTH, expand=True)

tree["columns"] = ("Name", "Age")
tree.column("#0", width=100)
tree.column("Name", width=100)
tree.column("Age", width=50)

tree.heading("#0", text="ID")
tree.heading("Name", text="姓名")
tree.heading("Age", text="年龄")

# 插入数据
tree.insert("", "end", iid=1, text="1", values=("Alice", 30))
tree.insert("", "end", iid=2, text="2", values=("Bob", 25))
tree.insert("", "end", iid=3, text="3", values=("Charlie", 35))

# 创建按钮获取选择的项
button = tk.Button(root, text="获取选中项", command=get_selected_item)
button.pack()

root.mainloop()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.

在这个示例中,我们增加了一个按钮,通过点击该按钮,可以输出当前选中项的内容。

类图

为了更清晰地理解 Treeview 的使用,这里我们展示一个简单的类图,描述 Treeview 的基本组成。

TreeView +Item treeItem +addColumn(columnName: string) +insertItem(item: Item) +getSelectedItem() : Item Item +text: string +values: list

结论

通过上述示例,我们清楚地了解到如何在 Tkinter 中创建和使用 Treeview 控件,以及如何获取和打印用户选择的值。Treeview 控件具有丰富的功能,适用于各种应用场景。希望这篇文章能帮助你更好地理解和使用 Treeview。你可以根据需要扩展这个示例,增加更多的数据和复杂的操作!