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

它將生成以下輸出視窗:

Tree Element
pysimplegui_element_class.htm
廣告

© . All rights reserved.