PySimpleGUI 4.60.4 也没有 HScrollbar
时间: 2023-05-28 17:01:50 浏览: 53
作为一个AI,我不知道现在的PySimpleGUI版本是否有HScrollbar,但你可以访问官方文档或社区论坛来了解最新版本的功能和特性。同时,你也可以尝试使用其他UI框架,如Tkinter、wxPython等来实现滚动条功能。
相关问题
PySimpleGUI4.60.4版本中设置table中的一列为复选框
在PySimpleGUI4.60.4版本中,可以使用`Checkbox`元素来创建一个复选框,并将其放置在表格的一列中。
以下是一个示例代码:
```python
import PySimpleGUI as sg
data = [['John', 'Doe', '30', 'Male'],
['Jane', 'Doe', '28', 'Female'],
['Bob', 'Smith', '45', 'Male'],
['Mary', 'Johnson', '50', 'Female']]
headers = ['First Name', 'Last Name', 'Age', 'Gender']
# Create the table layout
layout = [[sg.Table(values=data, headings=headers, auto_size_columns=True,
col_widths=15, num_rows=10,
select_mode=sg.TABLE_SELECT_MODE_EXTENDED,
)]]
# Add a column of checkboxes
for row in layout[0][0].get_indexes():
layout[0][0].update(row=row, values=[False] + layout[0][0].get(row, values=[]))
# Add a submit button
layout.append([sg.Submit()])
window = sg.Window('Table with Checkboxes', layout)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
if event == 'Submit':
selected_rows = [row for row in layout[0][0].get_indexes() if layout[0][0].get(row, values=[])[0]]
print('Selected Rows:', selected_rows)
window.close()
```
此代码使用`sg.Table`创建一个包含数据的表格,并在表格中添加了一列复选框。要在表格中的每一行中添加复选框,请遍历表格的每一行,将`False`和行值添加到该行的值列表中。在此示例中,我们还添加了一个提交按钮,以便用户可以选择他们所需的任何行。
在事件循环中,我们检查用户是否单击了提交按钮,并收集选择的行。`sg.Table.get_indexes`方法返回表格中所有可见行的索引。我们遍历这些索引,并检查哪些行已选中(列值为 True)。
最后,我们打印选择的行,然后关闭窗口。
PySimpleGUI4.60.4版本中设置table中的一列为按键
你可以使用`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()`方法。这将更新表格以显示更改。