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