PySimpleGUI4.60.4版本,向列表中添加一列为复选框
时间: 2023-05-25 10:06:09 浏览: 151
可以使用PySimpleGUI的Table元素来实现列表中添加复选框列。以下是一个简单的示例代码:
``` python
import PySimpleGUI as sg
# 列表数据
data = [['Alice', '25', 'USA'], ['Bob', '30', 'France'], ['Charlie', '40', 'China'], ['Daisy', '20', 'Australia']]
# 列标题
headings = ['Name', 'Age', 'Country', 'Select']
# 创建布局
layout = [
[sg.Table(values=data,
headings=headings,
display_row_numbers=False,
auto_size_columns=False,
num_rows=10,
select_mode=sg.TABLE_SELECT_MODE_EXTENDED,
col_widths=[10, 5, 10, 5],
enable_events=True,
key='-TABLE-')]
]
window = sg.Window('Add Checkbox Column to Table', layout)
# 事件循环
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
if event == '-TABLE-':
# 处理复选框列
if values['-TABLE-']:
rows_selected = values['-TABLE-']
for row in rows_selected:
if not data[row][-1]:
data[row][-1] = True # 未选中变为选中
else:
data[row][-1] = False # 已选中变为未选中
window['-TABLE-'].update(values=data)
window.close()
```
在Table的布局中,定义了一个名为`Select`的新列。然后在事件循环中,当Table接收到事件后,判断是否有行被选中,再根据选中行的值来操作`Select`列的复选框。最后将更新后的数据赋值给Table的`values`参数即可实现添加复选框列。