Python-Tkinter 中的樹形檢視捲軸
在圖形使用者介面 (GUI) 中處理分層資料時,通常需要以結構化和組織化的方式顯示資料。Python-Tkinter 中的 Treeview 小部件提供了一個強大的解決方案,可以以使用者友好的方式呈現分層資料。但是,隨著 Treeview 中專案數量的增加,包含捲軸以確保平滑導航和可用性變得至關重要。
首先,確保您的系統上已安裝 Python 和 Tkinter。建議使用 Python 3 以確保相容性和改進的功能。如果尚未安裝 Tkinter,可以使用 Python 包管理器 pip 輕鬆安裝它。開啟您的終端或命令提示符並執行以下命令 −
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 小部件後,新增以下程式碼以建立捲軸並將 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 類的 scrollbar 物件,使用 orient 引數將方向指定為“vertical”。command 引數設定為 tree.yview,它將捲軸與 Treeview 的垂直滾動相關聯。
接下來,我們將 Treeview 配置為使用 scrollbar 的 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 屬性設定為包含列名的元組來向 Treeview 新增兩列:“Name”和“Age”。#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 的內容。我們還介紹瞭如何設定捲軸樣式以匹配應用程式的整體主題。此外,我們學習瞭如何處理捲軸事件,使我們能夠響應使用者互動執行特定的程式碼。透過遵循這些步驟,您可以透過合併可滾動 Treeview 來增強您的 Python-Tkinter 應用程式,從而提供一種有效且使用者友好的方式來導航分層資料。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP