- PySimpleGUI 教程
- PySimpleGUI - 首頁
- PySimpleGUI - 簡介
- PySimpleGUI - 環境設定
- PySimpleGUI - Hello World
- PySimpleGUI - 彈出視窗
- PySimpleGUI - 視窗類
- PySimpleGUI - 元素類
- PySimpleGUI - 事件
- PySimpleGUI - 選單欄
- PySimpleGUI - Matplotlib 整合
- PySimpleGUI - 使用 PIL
- PySimpleGUI - 偵錯程式
- PySimpleGUI - 設定
- PySimpleGUI 有用資源
- PySimpleGUI - 快速指南
- PySimpleGUI - 有用資源
- PySimpleGUI - 討論
PySimpleGUI - 樹形元素
樹是一種分層資料結構,由一個或多個節點組成,每個節點可能有一個或多個子節點。節點的這種排列是在 TreeData 物件中完成的,該物件用作建立表格的資料引數。
首先,宣告一個 TreeData 物件。
treedata = psg.TreeData()
使用 TreeData 類的 insert() 方法構建節點的層次結構。
TreeData.insert(parent_key, key, display_text, values)
要在樹的第一級插入節點,請使用 "" 作為 parant_key。因此,樹中的每個頂級節點都將具有父節點 = ""。要插入子節點,請將上一級節點的鍵作為其 parent_key。
例如,
insert("","MH", "Maharashtra", (175, 150, 200))
將在根級別插入一個鍵為 MH 的節點。
另一方面,以下命令
insert("MH", "MUM", "Mumbai", (100, 100,100))
將插入一個鍵為 MUM 的子節點。
TreeData 物件用於使用以下引數構建 Tree 物件:
| 序號 | 引數及描述 |
|---|---|
| 1 | data 使用 TreeData 類表示的資料 |
| 2 | headings 每列的各個標題列表 |
| 3 | col_widths 各列的列寬列表 |
| 4 | col0_width 第 0 列的大小 |
| 5 | col0_heading 最左側列標題中顯示的文字 |
| 6 | def_col_width 預設列寬 |
| 7 | auto_size_columns 如果為 True,則列的大小由列的內容確定 |
| 8 | select_mode 與表格元素相同 |
| 9 | show_expanded 如果為 True,則樹將最初顯示所有節點完全展開 |
在下面的示例中,我們以樹狀結構顯示了各州的城市列表
import PySimpleGUI as psg
psg.set_options(font=("Arial Bold",14))
treedata = psg.TreeData()
rootnodes=[
["","MH", "Maharashtra", 175, 150, 200],
["MH", "MUM", "Mumbai", 100, 100,100],
["MH", "PUN", "Pune", 30, 20, 40],
["MH", "NGP", "Nagpur", 45, 30, 60],
["","TEL", "Telangana", 120, 80, 125],
["TEL", "HYD", "Hyderabad", 75, 55, 80],
["TEL", "SEC", "Secunderabad", 25, 15, 30],
["TEL", "NZB", "Nizamabad", 20, 10, 15]
]
for row in rootnodes:
treedata.Insert( row[0], row[1], row[2], row[3:])
tree=psg.Tree(data=treedata,
headings=['Product A','Product B','Product C' ],
auto_size_columns=True,
select_mode=psg.TABLE_SELECT_MODE_EXTENDED,
num_rows=10,
col0_width=5,
key='-TREE-',
show_expanded=False,
enable_events=True,
expand_x=True,
expand_y=True,
)
layout=[[tree]]
window=psg.Window("Tree Demo", layout, size=(715, 200), resizable=True)
while True:
event, values = window.read()
print ("event:",event, "values:",values)
if event == psg.WIN_CLOSED:
break
它將生成以下輸出視窗:
pysimplegui_element_class.htm
廣告