PySimpleGUI 表元素
表对象是任何GUI库中一个有用的GUI部件。它的目的是以表格的形式显示数字和字符串的二维数据结构,有行和列。
传递给Table类构造函数的重要参数是 —
PySimpleGUI.Table(values, headings, col_widths,
auto_size_columns, select_mode,
display_row_numbers, num_rows,
alternating_row_color,
selected_row_colors,
header_text_color)
下表解释了这些参数各自的作用:
序号:Sr.No. | 参数和描述 |
---|---|
1 | **Values ** 表数据以二维表的形式表示 |
2 | **Headings ** 在顶行显示的标题 |
3 | col_widths 每一列所占的字符数 |
4 | auto_size_columns 如果为 “真”,列将被自动调整大小。 |
5 | select_mode 选择模式。有效值。 table_select_mode_none table_select_mode_browse table_select_mode_extended |
6 | display_row_numbers 如果为真,表格的第一列将是该行。 |
7 | num_rows 每次要显示的表的行数 |
8 | alternating_row_color 如果为真,每隔一行都会有这种颜色的背景。 |
9 | selected_row_colors 设置选定行的文本颜色和背景颜色。 |
10 | header_text_color 设置页眉的文本颜色。 |
当表格中的任何单元格被点击时,PySimpleGUI会生成一个CLICKED事件的元组,其中有表格的键和被点击单元格的(row,col)。
event: ('-TABLE-', '+CLICKED+', (0, 1))
下面的代码在PySimpleGUI窗口上显示了一个表对象中的学生名单。当你点击任何单元格时,会出现一个弹出窗口。单元格的坐标显示在弹出窗口中。
import PySimpleGUI as psg
psg.set_options(font=("Arial Bold", 14))
toprow = ['S.No.', 'Name', 'Age', 'Marks']
rows = [[1, 'Rajeev', 23, 78],
[2, 'Rajani', 21, 66],
[3, 'Rahul', 22, 60],
[4, 'Robin', 20, 75]]
tbl1 = psg.Table(values=rows, headings=toprow,
auto_size_columns=True,
display_row_numbers=False,
justification='center', key='-TABLE-',
selected_row_colors='red on yellow',
enable_events=True,
expand_x=True,
expand_y=True,
enable_click_events=True)
layout = [[tbl1]]
window = psg.Window("Table Demo", layout, size=(715, 200), resizable=True)
while True:
event, values = window.read()
print("event:", event, "values:", values)
if event == psg.WIN_CLOSED:
break
if '+CLICKED+' in event:
psg.popup("You clicked row:{} Column: {}".format(event[2][0], event[2][1]))
window.close()
它将产生以下 输出 窗口 –
表对象也有一个 update() 方法,用于动态更新表的属性,如value、num_rows和row_color。