PySimpleGUI4.60.4版本中设置table中的一列为按键
时间: 2023-05-26 07:05:29 浏览: 109
PySimpleGUI4.60.5
你可以使用`enable_events=True`参数将某一列设置为可触发事件,在用户点击单元格时触发。然后,您可以传递一个回调函数给`window.read()`方法,以处理事件。
以下是一个示例代码:
```python
import PySimpleGUI as sg
# 定义表格的标题行和数据行
header_list = ['Name', 'Age', 'Email', 'Delete']
data_list = [
['John', 25, 'john@example.com', 'Delete'],
['Jane', 30, 'jane@example.com', 'Delete'],
['Bob', 40, 'bob@example.com', 'Delete']
]
# 定义布局
layout = [
[sg.Table(values=data_list, headings=header_list, enable_events=True, key='-TABLE-')],
[sg.Button('Exit')]
]
# 创建窗口
window = sg.Window('Table with Button Column', layout)
# 处理事件循环
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'Exit':
break
elif event == '-TABLE-':
# 获取用户点击的行和列号
row, col = values['-TABLE-']
# 检查用户是否点击了 Delete 列
if col == 3:
# 从数据列表中删除选定的行
del data_list[row]
# 更新表格
window['-TABLE-'].update(values=data_list)
# 关闭窗口
window.close()
```
在此示例中,我们将第四列设置为可触发事件,并在用户单击“Delete”单元格时触发回调函数。回调函数执行以下操作:
- 获取用户单击的行和列号。
- 如果用户单击了“Delete”列,则从数据列表中删除该行。
- 更新表格以显示更改。
注意,我们在将表格数据更新为删除行后的新数据列表时,我们使用了`window['-TABLE-'].update()`方法。这将更新表格以显示更改。
阅读全文