PySimpleGUI 4.60.4 也没有 HScrollbar
时间: 2023-05-28 07:01:50 浏览: 174
作为一个AI,我不知道现在的PySimpleGUI版本是否有HScrollbar,但你可以访问官方文档或社区论坛来了解最新版本的功能和特性。同时,你也可以尝试使用其他UI框架,如Tkinter、wxPython等来实现滚动条功能。
相关问题
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()`方法。这将更新表格以显示更改。
PySimpleGUI4.60.4版本,向列表中添加一列为复选框
可以使用`sg.Checkbox()`来创建复选框,然后将其添加到列表中。
以下是一个示例代码:
``` python
import PySimpleGUI as sg
layout = [
[sg.Text('Select items to purchase')],
[sg.Listbox(values=['Item 1', 'Item 2', 'Item 3'], size=(20, 6), key='-LIST-')],
[sg.Button('Add to Cart')],
[sg.Text('Shopping Cart')],
[sg.Table(values=[], headings=['Item', 'Qty'], col_widths=[15, 5], key='-TABLE-')],
[sg.Button('Place Order')]
]
window = sg.Window('Shopping App', layout)
cart = []
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
if event == 'Add to Cart':
items = values['-LIST-']
for item in items:
row = [item, sg.Checkbox(default=False, key=item)]
cart.append(row)
window['-TABLE-'].update(values=cart)
if event == 'Place Order':
for item in cart:
if item[1].get():
print(item[0])
window.close()
break
```
在列表中添加复选框,我们创建了一个二维数组,其中每个数组表示一个行。第一列包含项目名称,第二列包含复选框。
在这个示例代码中,我们使用了`sg.Checkbox()`和`sg.Table()`来创建一个简单的购物应用程序。 当用户从列表中选择项目并单击“Add to Cart”按钮时,将选定的项目添加到购物车中。购物车用表格表示,并包含所选商品的名称和数量。最终,在单击“Place Order”按钮时,将列出购物车中选中的所有商品。
注意:在这个示例代码中,我们将项目名称用作复选框的键,这可能不是最好的做法。 在实际应用程序中,建议使用唯一的键来确保正确地跟踪项目的状态。
阅读全文