Tkinter 树状视图滚动条

Tkinter 树状视图滚动条

在图形用户界面(GUI)中处理分层数据时,通常需要以结构化和组织良好的方式显示数据。Python-Tkinter中的树状视图小部件提供了一种以用户友好的方式呈现分层数据的强大解决方案。然而,随着树状视图中项目的增多,包含滚动条以确保平滑导航和可用性变得至关重要。

首先,请确保您的系统上已安装Python和Tkinter。推荐使用Python 3以确保兼容性和改进的功能。如果您尚未安装Tkinter,可以使用pip(Python软件包管理器)轻松安装它。打开您的终端或命令提示符,并运行以下命令 -

pip install tk

安装了Tkinter后,您将可以访问用于构建Treeview小部件和添加滚动条所需的功能强大的GUI工具包。

创建一个Treeview

首先,我们将创建一个基本的Treeview小部件。打开您喜欢的文本编辑器或集成开发环境(IDE)并创建一个新的Python文件。我们将导入必要的模块-

import tkinter as tk
from tkinter import ttk

tkinter模块为Python中构建GUI应用提供了基础,ttk模块包含了主题化的小部件,其中包括Treeview小部件。

接下来,让我们创建一个Tkinter根窗口和一个Treeview小部件。将以下代码添加到你的Python文件中:

root = tk.Tk()

# Create a Treeview widget
tree = ttk.Treeview(root)
tree.pack()

在这里,我们使用tk.Tk()创建一个根窗口,作为我们应用程序的主窗口。然后,我们创建ttk.Treeview类的tree对象,表示我们的Treeview小部件。最后,我们使用pack方法在根窗口中显示Treeview小部件。

添加滚动条

要向我们的Treeview添加滚动条,我们将利用Tkinter提供的ttk.Scrollbar小部件。当Treeview中包含的项目多于可用空间时,滚动条将使垂直滚动平滑进行。

在创建Treeview小部件后,添加以下代码创建滚动条并配置Treeview使用它 –

# Create a Scrollbar
scrollbar = ttk.Scrollbar(root, orient="vertical", command=tree.yview)

# Configure the Treeview to use the scrollbar
tree.configure(yscrollcommand=scrollbar.set)

# Place the scrollbar on the right side of the Treeview
scrollbar.pack(side="right", fill="y")

在这里,我们创建了一个ttk.Scrollbar类的滚动条对象,使用orient参数将其方向设置为”垂直”。command参数设置为tree.yview,将滚动条与Treeview的垂直滚动关联起来。

接下来,我们配置Treeview以使用滚动条的set方法作为yscrollcommand选项。这样可以确保滚动条控制Treeview的垂直滚动。

最后,我们使用pack方法将滚动条放置在Treeview小部件的右侧,使用fill=”y”选项使其填充整个Treeview的高度。

通过这些添加,如果您现在运行Python文件,您将在右侧看到带有垂直滚动条的Treeview小部件。当需要时,滚动条将允许通过Treeview的内容进行滚动。

填充Treeview

现在我们已经设置好了Treeview和滚动条,让我们用一些示例数据来填充Treeview。这样我们就可以观察滚动条在处理更多项目时的行为。

要向Treeview添加列和项目,修改您的Python文件如下−

# Add columns to the Treeview
tree["columns"] = ("Name", "Age")

# Define column headings
tree.heading("#0", text="ID")
tree.heading("Name", text="Name")
tree.heading("Age", text="Age")

# Add items to the Treeview
tree.insert("", "end", text="1", values=("John Doe", "30"))
tree.insert("", "end", text="2", values=("Jane Smith", "25"))
tree.insert("", "end", text="3", values=("Mike Johnson", "35"))

在这里,我们通过将columns属性设置为一个包含列名的元组:”Name”和”Age”,向TreeView添加了两列。#0列代表默认的第一列,我们将用它来显示ID。我们使用heading方法相应地设置列标题。

接下来,我们使用insert方法向TreeView插入项目。每个项目由唯一的ID表示,并且对应的列有相应的值。在这个例子中,我们插入了三个具有ID 1、2和3的项目,以及它们各自的名称和年龄。

样式化滚动条

虽然基本的滚动条功能是必不可少的,但您可能还想自定义其外观以匹配应用程序的整体主题。Tkinter提供了使用ttk.Style类修改滚动条样式的选项。让我们看看如何样式化滚动条以实现更协调的外观。

首先,导入ttk模块并创建ttk.Style类的实例−

from tkinter import ttk

# Create a Style object
style = ttk.Style()

接下来,我们可以配置滚动条的样式。在这个例子中,我们将改变滚动条的背景颜色、手柄颜色和厚度。在创建样式对象后添加以下代码。

# Configure the style for the scrollbar
style.configure("Treeview.Scrollbar",
                background="gray",
                troughcolor="light gray",
                gripcount=0,
                gripcolor="white",
                gripinset=2,
                gripborderwidth=0,
                thickness=10)

在这里,我们使用ttk.Style类的configure方法来自定义滚动条的外观。”Treeview.Scrollbar”字符串指的是我们要修改的特定样式元素。

在这个例子中,我们将滚动条的背景颜色设置为灰色,槽的颜色设置为浅灰色,手柄的颜色设置为白色。gripcount选项设置为0以隐藏手柄,并使用gripinset和gripborderwidth选项来调整手柄的外观。最后,我们将滚动条的宽度设置为10像素。

要将自定义样式应用于滚动条,请将其与Treeview小部件相关联。将滚动条创建代码修改如下:

# Create a Scrollbar with the customized style
scrollbar = ttk.Scrollbar(root, orient="vertical", command=tree.yview, style="Treeview.Scrollbar")

通过将style参数指定为”Treeview.Scrollbar”,滚动条将使用之前定义的自定义样式。

保存Python文件并运行它。现在您应该在Treeview中看到使用更新样式的滚动条。

测试滚动条

保存Python文件并运行它。您应该看到一个窗口,窗口中有Treeview小部件和右侧的垂直滚动条。尝试调整窗口大小或向Treeview中添加更多项目,以查看滚动条的效果。

结论

在这里,我们探讨了如何在Python-Tkinter中为Treeview小部件添加滚动条。我们首先创建了一个基本的Treeview,然后添加了一个垂直滚动条,以便平滑地滚动Treeview的内容。我们还介绍了如何样式化滚动条以与应用程序的整体主题相匹配。此外,我们学习了如何处理滚动条事件,使我们能够对用户交互做出具体的响应。通过遵循这些步骤,您可以通过嵌入可滚动的Treeviews增强您的Python-Tkinter应用程序,为导航分层数据提供高效和用户友好的方式。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程