使用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 次檢視

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.