使用Tkinter将垂直滚动条附加到树状视图
在使用Tkinter创建GUI应用程序时,您可能经常需要以树状格式显示表格数据。TreeView小部件是此操作的绝佳选择,因为它允许您以分层格式显示数据,类似于文件资源管理器或目录树。
但是,当数据量很大且无法容纳在树状视图的可视区域中时,就需要添加滚动条以使用户能够浏览数据。在本文中,我们将探讨如何使用Tkinter将垂直滚动条附加到树状视图。
在深入研究之前,让我们先学习如何在Tkinter中创建TreeView小部件。
创建树状视图
在将滚动条附加到树状视图之前,我们需要首先创建树状视图小部件本身。
示例
以下是一些创建具有两列的简单树状视图小部件的示例代码:
import tkinter as tk
from tkinter import ttk
# create a tkinter window
window = tk.Tk()
window.geometry("720x250")
window.title("Adding a Vertical Scrollbar to a Treeview Widget")
# create a treeview
tree = ttk.Treeview(window, columns=('Name', 'Age'))
# define the columns
tree.heading('#0', text='ID')
tree.heading('Name', text='Name')
tree.heading('Age', text='Age')
# add some data to the treeview
tree.insert('', 'end', '1', text='1', values=('Ram', 25))
tree.insert('', 'end', '2', text='2', values=('Mohan', 30))
tree.insert('', 'end', '3', text='3', values=('Shayam', 35))
# pack the treeview
tree.pack()
# start the main loop
window.mainloop()
在上面的代码中,我们首先创建一个Tkinter窗口,然后使用ttk.Treeview()创建一个TreeView小部件。我们还使用columns属性指定要在树状视图中使用的列。
接下来,我们使用heading()方法定义每列的标题,并使用insert()方法向树状视图添加一些示例数据。
最后,我们将树状视图小部件打包并启动主循环。
输出
运行此代码后,您将看到一个具有两列的TreeView小部件,如下所示:

添加垂直滚动条
现在我们有了树状视图小部件,我们可以向其中添加垂直滚动条。为此,我们将创建一个Scrollbar小部件,并使用yscrollcommand选项将其连接到树状视图。
示例
以下是将垂直滚动条添加到现有树状视图小部件的示例:
import tkinter as tk
from tkinter import ttk
# create a tkinter window
window = tk.Tk()
window.geometry("720x250")
window.title("Adding a Vertical Scrollbar to a Treeview Widget")
# create a treeview
tree = ttk.Treeview(window, columns=('Name', 'Age'))
# define the columns
tree.heading('#0', text='ID')
tree.heading('Name', text='Name')
tree.heading('Age', text='Age')
# add some data to the treeview
tree.insert('', 'end', '1', text='1', values=('Ram', 25))
tree.insert('', 'end', '2', text='2', values=('Mohan', 30))
tree.insert('', 'end', '3', text='3', values=('Shayam', 35))
tree.insert('', 'end', '4', text='4', values=('Rahul', 29))
tree.insert('', 'end', '5', text='5', values=('Sohan', 36))
tree.insert('', 'end', '6', text='6', values=('Navya', 39))
tree.insert('', 'end', '7', text='7', values=('Divya', 35))
tree.insert('', 'end', '8', text='8', values=('Mohit', 32))
tree.insert('', 'end', '9', text='9', values=('Raj', 31))
tree.insert('', 'end', '10', text='10', values=('Gaurav', 34))
tree.insert('', 'end', '11', text='11', values=('Aarav', 29))
tree.insert('', 'end', '12', text='12', values=('Sahil', 25))
tree.insert('', 'end', '13', text='13', values=('Sakshi', 36))
tree.insert('', 'end', '14', text='14', values=('Puja', 32))
tree.insert('', 'end', '15', text='15', values=('Arnav', 28))
# add a vertical scrollbar
scrollbar = ttk.Scrollbar(window, orient='vertical', command=tree.yview)
tree.configure(yscrollcommand=scrollbar.set)
scrollbar.pack(side='right', fill='y')
# pack the treeview
tree.pack()
# start the main loop
window.mainloop()
在此代码中,我们首先创建一个Scrollbar小部件,并将orient属性设置为'vertical',并使用command选项指定在使用滚动条时要调用的命令。
接下来,我们通过将树状视图的yscrollcommand属性设置为滚动条的`set`方法来将滚动条连接到树状视图小部件。每当移动滚动条时,都会调用此方法,并相应地设置树状视图的视图。
最后,我们将滚动条小部件打包在窗口的右侧,并将其fill属性设置为'y',以确保它占据整个垂直空间。
现在,当我们运行代码时,我们将看到一个垂直滚动条已添加到树状视图小部件中,即使数据超出小部件的可视区域,我们也可以浏览数据。
输出
运行此代码后,您将看到一个具有两列、15个条目和一个垂直滚动条的TreeView小部件,如下所示:

结论
使用Tkinter将垂直滚动条附加到树状视图小部件是一个简单的过程,它可以在显示大量数据时极大地增强用户体验。通过遵循本文中概述的步骤,您可以轻松创建允许用户轻松浏览数据的滚动条。
请记住,您还可以使用ttk.Style对象自定义滚动条的外观,以匹配应用程序的外观和感觉。有了这些知识,您可以创建直观且时尚的GUI应用程序,以满足用户需求。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP