📜  Python GUI 应用程序中的分层树视图

📅  最后修改于: 2022-05-13 01:55:35.474000             🧑  作者: Mango

Python GUI 应用程序中的分层树视图

Python使用不同的 GUI 应用程序,这些应用程序在与他们正在使用的应用程序交互时对用户很有帮助。 Python基本上使用了三个 GUI,即Tkinter、wxPython 和 PyQt 。所有这些都可以在 windows、Linux 和 mac-OS 上运行。然而,这些 GUI 应用程序有许多小部件,即有助于用户与应用程序交互的控件。一些小部件是按钮、列表框、滚动条、树视图等。
注意:更多信息请参考Python GUI – tkinter

树视图小部件

此小部件有助于可视化并允许在项目层次结构上导航。它可以显示层次结构中每个项目的多个特征。它可以像在 Windows 资源管理器中一样将树视图构建为用户界面。因此,在这里我们将使用 Tkinter 来在Python GUI 应用程序中构建分层树视图。
让我们看一个在Python GUI 应用程序中构建分层树视图的示例。

GUI 如下所示:

例子:

Python
# Python program to illustrate the usage
# of hierarchical treeview in python GUI
# application using tkinter
 
# Importing tkinter
from tkinter import * 
 
# Importing ttk from tkinter
from tkinter import ttk 
 
# Creating app window
app = Tk() 
 
# Defining title of the app
app.title("GUI Application of Python") 
 
# Defining label of the app and calling a geometry
# management method i.e, pack in order to organize
# widgets in form of blocks before locating them
# in the parent widget
ttk.Label(app, text ="Treeview(hierarchical)").pack()
 
# Creating treeview window
treeview = ttk.Treeview(app) 
 
# Calling pack method on the treeview
treeview.pack() 
 
# Inserting items to the treeview
# Inserting parent
treeview.insert('', '0', 'item1',
                text ='GeeksforGeeks')
 
# Inserting child
treeview.insert('', '1', 'item2',
                text ='Computer Science')
treeview.insert('', '2', 'item3',
                text ='GATE papers')
treeview.insert('', 'end', 'item4',
                text ='Programming Languages')
 
# Inserting more than one attribute of an item
treeview.insert('item2', 'end', 'Algorithm',
                text ='Algorithm') 
treeview.insert('item2', 'end', 'Data structure',
                text ='Data structure')
treeview.insert('item3', 'end', '2018 paper',
                text ='2018 paper') 
treeview.insert('item3', 'end', '2019 paper',
                text ='2019 paper')
treeview.insert('item4', 'end', 'Python',
                text ='Python')
treeview.insert('item4', 'end', 'Java',
                text ='Java')
 
# Placing each child items in parent widget
treeview.move('item2', 'item1', 'end') 
treeview.move('item3', 'item1', 'end')
treeview.move('item4', 'item1', 'end')
 
# Calling main() 
app.mainloop()


输出:

在上面的输出中,创建了一个分层树视图。其中, GeeksforGeeks计算机科学、GATE 论文和编程语言的父级。所有的孩子都有各自的属性。最后,此处调用 move() 方法,以便将所有子节点连接到父树。