PySimpleGUI - Table 表格元素
Table 对象在任何 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)
下表解释了每个参数的作用 −
| 序号 | 参数 & 描述 |
|---|---|
| 1 | Values 表数据表示为二维表 |
| 2 | Headings 要显示在顶行的标题 |
| 3 | col_widths 每列将占用的字符数 |
| 4 | auto_size_columns 如果为 True 列,将自动调整大小 |
| 5 | select_mode 选择模式。 有效值:
|
| 6 | display_row_numbers 如果为 True,表格的第一列将是行 |
| 7 | num_rows 一次要显示的表格行数 |
| 8 | alternating_row_color 如果为 True,每隔一行将在背景中使用此颜色。 |
| 9 | selected_row_colors 设置选定行的文本颜色和背景颜色。 |
| 10 | header_text_color 设置标题的文本颜色 |
当表格中的任何单元格被点击时,PySimpleGUI 生成一个包含表格键的 CLICKED 事件元组,以及被点击单元格的 (row,col)。
event: ('-TABLE-', '+CLICKED+', (0, 1))
以下代码在 PySimpleGUI 窗口的 Table 对象中显示学生列表。 单击任何单元格时会出现一个弹出窗口。 单元格坐标显示在弹出窗口中。
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()
它将产生以下输出窗口 −
Table 对象还有一个 update() 方法来动态更新表属性,例如 values、num_rows 和 row_color。
