使用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应用程序,以满足用户需求。

更新于:2023年12月4日

258 次查看

启动您的职业生涯

完成课程获得认证

开始
广告