要获取点击表格的事件,提供了两个事件
- 选项
enable_click_events 用于在选择行之前单击单元格的事件,因此 values[table] 仍保留旧数据以供选择。
- 选项
enable_events 用于行选择事件,值[table] 将保留新选择的数据。
示例代码
import PySimpleGUI as sg
sg.theme("DarkBlue3")
newlist = [
[f"Cell ({row:0>2d}, {col:0>2d})" for col in range(8)]
for row in range(10)
]
COL_HEADINGS = ["Date", "Ref", "ID", "Owner", "Customer", "Price", "Size", "Path"]
layout = [
[sg.Table(
values=newlist,
headings=COL_HEADINGS,
max_col_width=25,
num_rows=10,
alternating_row_color='green',
key='-TABLE-',
enable_events=True,
# enable_click_events=True,
justification='center',
)],
[sg.Text("", size=(50, 1), expand_x=True, key='-Position-')]
]
window = sg.Window('Table', layout, finalize=True)
table = window['-TABLE-']
position = window['-Position-']
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
elif isinstance(event, tuple) and event[0:2] == ('-TABLE-', '+CICKED+'):
# click position row, column, count from 0, -1 for headings
row, col = event[2]
selection = values['-TABLE-']
# previous selected row number, not now.
previous_select_row = selection[0] if selection else 'None'
position.update(f'Clicked position is ({row}, {col}), and previous selected row is {previous_select_row}')
elif event == '-TABLE-':
# selected row number, cound from 0
row = values[event]
if row:
position.update(f'Selected row is {row}')
print(event, values)
window.close()