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 應用程式,從而提供一種有效且使用者友好的方式來導航分層資料。

更新於: 2023年8月14日

4K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.