Python Tkinter TreeView是一種可用於創建可展開/摺疊樹狀列表的工具。它是一種非常有用的工具,可以用於許多不同的項目,例如文件資源管理器、數據庫管理器和其他類似應用程序。在本教程中,我們將向您介紹如何在Python Tkinter中使用TreeView。
一、創建Treeview
要創建一個TreeView,我們需要使用Tkinter庫中的Treeview類。請注意,在創建TreeView之前,您需要確保已經安裝了Python Tkinter。
import tkinter as tk from tkinter import ttk # Create a top-level window root = tk.Tk() # Create a Treeview tree = ttk.Treeview(root) tree.pack() # Add some items to the tree tree.insert('', '0', 'item1', text="Item 1") tree.insert('', '1', 'item2', text="Item 2") tree.insert('', '2', 'item3', text="Item 3") # Start the main event loop root.mainloop()
在上面的代碼中,我們創建了一個頂層窗口和一個TreeView。我們使用ttk.Treeview類來創建樹,並使用tree.pack()來將Treeview放置在窗口中。我們還添加了幾個項目,以便在TreeView中顯示。
二、設置TreeView的列
TreeView支持列。每個列都有一個標題和一些單元。要設置列,請使用treeview.config()方法。在config()方法中,我們需要添加列的描述符。
import tkinter as tk from tkinter import ttk # Create a top-level window root = tk.Tk() # Create a Treeview tree = ttk.Treeview(root) # Define a column tree['columns'] = ('Column 1', 'Column 2') # Set column headings tree.heading('#0', text='Item') tree.heading('#1', text='Column 1') tree.heading('#2', text='Column 2') # Add items to the tree tree.insert('', '0', 'item1', text="Item 1", values=("1A", "1B")) tree.insert('', '1', 'item2', text="Item 2", values=("2A", "2B")) tree.insert('', '2', 'item3', text="Item 3", values=("3A", "3B")) # Start the main event loop root.mainloop()
在上面的代碼中,我們定義了兩個列,每個列有一個名稱。我們使用Treeview.heading()方法為每個列設置表頭。我們還添加了一些列值,以便在TreeView中顯示。
三、為樹狀列表添加子節點
在TreeView中,您可以添加子項目。這對於創建可展開/摺疊樹狀列表非常有用。您可以使用Treeview.insert()方法添加子項目。
import tkinter as tk from tkinter import ttk # Create a top-level window root = tk.Tk() # Create a Treeview tree = ttk.Treeview(root) # Add the root item tree.insert('', '0', 'item1', text="Item 1") # Add a child item to 'item1' tree.insert('item1', '0', 'item1child1', text="Item 1 Child 1") # Add a child item to 'item1child1' tree.insert('item1child1', '0', 'item1child1a', text="Item 1 Child 1a") # Start the main event loop root.mainloop()
在上面的代碼中,我們添加了一個根項目並添加了兩個子項目。我們使用Treeview.insert()方法將子項目添加為根項目的子項。對於每個子項,我們使用它的父節點id作為第一個參數,這樣Python就知道如何將子項鏈接到樹中。
四、獲取所選項目
使用Treeview.selection()可以從TreeView中獲取所選項目的id。此方法返回一個包含所選項目id的元組。
import tkinter as tk from tkinter import ttk # Create a top-level window root = tk.Tk() # Create a Treeview tree = ttk.Treeview(root) # Add some items to the tree tree.insert('', '0', 'item1', text="Item 1") tree.insert('', '1', 'item2', text="Item 2") tree.insert('', '2', 'item3', text="Item 3") # Get the selected item selected_item = tree.selection() # Start the main event loop root.mainloop()
在上面的代碼中,我們使用Treeview.selection()方法獲取所選項目的id。在此示例中,我們沒有創建任何單擊處理程序來選擇樹中的項目,因此Treeview.selection()方法將返回一個空元組。
五、插入圖像
您可以將圖像插入到TreeView的任何一列。要插入圖像,請使用Treeview.insert()和Treeview.image_create()方法。
import tkinter as tk from tkinter import ttk # Create a top-level window root = tk.Tk() # Create a Treeview tree = ttk.Treeview(root) # Define a column tree['columns'] = ('Column 1', 'Column 2') # Set column headings tree.heading('#0', text='Item') tree.heading('#1', text='Column 1') tree.heading('#2', text='Column 2') # Add items to the tree tree.insert('', '0', 'item1', text="Item 1", values=("1A", "1B")) tree.insert('', '1', 'item2', text="Item 2", values=("2A", "2B")) tree.insert('', '2', 'item3', text="Item 3", values=("3A", "3B")) # Insert an image img = tk.PhotoImage(file="image.gif") tree.image_create('item2', image=img) # Start the main event loop root.mainloop()
在上面的代碼中,我們為第二個項目插入了一個圖像。我們使用Treeview.image_create()方法來插入圖像。在此示例中,我們將名為「image.gif」的圖像插入到樹中的第二項中。
原創文章,作者:VDMPX,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/370172.html