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对象
序号:Sr.No. | 参数和描述 |
---|---|
1 | **data ** 使用TreeData类表示的数据 |
2 | **headings ** 每一列的单独标题的列表 |
3 | col_widths 每一列的列宽列表 |
4 | col0_width 第0列的尺寸 |
5 | col0_heading 最左边一列的标题中要显示的文本 |
6 | def_col_width 默认列宽 |
7 | auto_size_columns 如果为 “真”,一列的大小由该列的内容决定。 |
8 | select_mode 与表元素相同 |
9 | show_expanded 如果为真,树形结构最初将以所有节点完全展开的方式显示。 |
在下面的例子中,我们在一个树状结构中显示了一个城市的状态列表
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
它将产生以下 输出 窗口 –