首頁  >  文章  >  後端開發  >  Python-Tkinter中的樹狀視圖捲軸

Python-Tkinter中的樹狀視圖捲軸

WBOY
WBOY轉載
2023-08-20 17:57:542140瀏覽

Python-Tkinter中的樹狀視圖捲軸

在圖形使用者介面(GUI)中處理層次資料時,通常需要以結構化和有組織的方式顯示資料。 Python-Tkinter中的Treeview小工具提供了一種以使用者友好的方式呈現層次資料的強大解決方案。然而,隨著Treeview中項目的數量增加,包含捲軸以確保平滑的導航和可用性變得至關重要。

首先,請確保您的系統上安裝了Python和Tkinter。推薦使用Python 3以提高相容性和功能。如果您沒有安裝Tkinter,可以使用Python軟體套件管理器pip輕鬆安裝它。開啟您的終端機或命令提示符,並執行以下命令 

pip install tk

安裝了Tkinter後,您將可以存取用於建立Treeview小工具和添加捲軸所需的強大GUI工具包。

建立一個樹狀視圖

首先,我們將建立一個基本的Treeview小工具。開啟您喜歡的文字編輯器或整合開發環境(IDE),建立一個新的Python檔案。我們將從導入必要的模組開始 -

import tkinter as tk
from tkinter import ttk

The tkinter module provides the foundation for building GUI applications in Python, and the ttk module contains the themed widgets, including the Treeview widget.

接下來,讓我們建立一個Tkinter根視窗和一個Treeview小工具。將以下程式碼加入您的Python檔案中−

root = tk.Tk()

# Create a Treeview widget
tree = ttk.Treeview(root)
tree.pack()

在這裡,我們使用tk.Tk()來建立一個根窗口,它作為我們應用程式的主窗口。然後,我們創建了ttk.Treeview類別的一個樹對象,它代表我們的Treeview小部件。最後,我們使用pack方法在根視窗中顯示Treeview小工具。

新增捲軸

要為我們的Treeview新增捲軸,我們將使用Tkinter提供的ttk.Scrollbar小工具。當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")

Here, we create a scrollbar object of the ttk.Scrollbar class, specifying the orientation as "vertical" using the orient parameter. The command class, is set to tree.yview, which associates the rollbarparameter is set to tree.yview, which associates the rollbarparameter scrolling the tree. .

接下來,我們配置Treeview使用捲軸的set方法作為其yscrollcommand選項。這樣可以確保捲軸控制Treeview的垂直滾動。

最後,我們使用pack方法將捲軸放置在Treeview小工具的右側,使用fill="y"選項使其填滿整個Treeview的高度。

透過這些添加,如果現在運行Python文件,你將會看到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屬性設定為包含列名的元組:"Name"和"Age",向Treeview新增了兩列。 #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应用程序,为导航分层数据提供高效和用户友好的方式。

以上是Python-Tkinter中的樹狀視圖捲軸的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除