- PySimpleGUI 教程
- PySimpleGUI - 首页
- PySimpleGUI - 简介
- PySimpleGUI - 环境设置
- PySimpleGUI - Hello World
- PySimpleGUI - 弹出窗口
- PySimpleGUI - 窗口类
- PySimpleGUI - 元素类
- PySimpleGUI - 事件
- PySimpleGUI - 菜单栏
- PySimpleGUI - Matplotlib 集成
- PySimpleGUI - 使用 PIL
- PySimpleGUI - 调试器
- PySimpleGUI - 设置
- PySimpleGUI 有用资源
- PySimpleGUI - 快速指南
- PySimpleGUI - 有用资源
- PySimpleGUI - 讨论
PySimpleGUI - 列表框元素
在 PySimpleGUI 工具包中,此 GUI 元素是一个容器,可以显示一个或多个项目,并从中进行选择。您可以指定一次可见的项目数量。如果项目数量或长度超过列表框的尺寸,则在元素的右侧或底部会出现垂直和/或水平滚动条。
ListBox 类的重要属性如下:
序号 | 属性及描述 |
---|---|
1 | 值 要显示的值列表。可以是任何类型,包括混合类型 |
2 | default_values 最初应选择哪些值 |
3 | select_mode 选择模式用于确定是否只能选择 1 个项目或多个项目,以及如何选择它们。 |
4 | no_scrollbar 控制是否应显示滚动条。如果为 True,则不显示滚动条 |
5 | horizontal_scroll 控制是否应显示水平滚动条。如果为 True,则除了垂直滚动条外,还会显示水平滚动条 |
“select_mode”属性可以具有以下枚举值之一:
LISTBOX_SELECT_MODE_SINGLE(默认)
LISTBOX_SELECT_MODE_MULTIPLE
LISTBOX_SELECT_MODE_BROWSE
LISTBOX_SELECT_MODE_EXTENDED
ListBox 类继承了 Element 类的 update() 方法。当窗口更新时,它会影响某些属性的变化。update() 方法的参数为:
序号 | 属性及描述 |
---|---|
1 | 值 要显示给用户的新选项列表 |
2 | 禁用 元素的禁用或启用状态 |
3 | set_to_index 突出显示指示的项目(或项目)。如果parm是整数,则将设置一个条目。如果是列表,则突出显示列表中的每个条目 |
4 | scroll_to_index 滚动列表框,使该索引成为第一个显示的索引 |
5 | select_mode 更改选择模式 |
6 | 可见 控制元素的可见性 |
ListBox 元素在以下程序中处于活动状态。PySimpleGUI 窗口显示一个输入元素、一个列表框和带有“添加”、“删除”和“退出”标题的按钮。
import PySimpleGUI as psg names = [] lst = psg.Listbox(names, size=(20, 4), font=('Arial Bold', 14), expand_y=True, enable_events=True, key='-LIST-') layout = [[psg.Input(size=(20, 1), font=('Arial Bold', 14), expand_x=True, key='-INPUT-'), psg.Button('Add'), psg.Button('Remove'), psg.Button('Exit')], [lst], [psg.Text("", key='-MSG-', font=('Arial Bold', 14), justification='center')] ] window = psg.Window('Listbox Example', layout, size=(600, 200)) while True: event, values = window.read() print(event, values) if event in (psg.WIN_CLOSED, 'Exit'): break if event == 'Add': names.append(values['-INPUT-']) window['-LIST-'].update(names) msg = "A new item added : {}".format(values['-INPUT-']) window['-MSG-'].update(msg) if event == 'Remove': val = lst.get()[0] names.remove(val) window['-LIST-'].update(names) msg = "A new item removed : {}".format(val) window['-MSG-'].update(msg) window.close()
运行上述代码,在输入框中输入一些文本,然后按“添加”按钮。文本将添加到其下方的列表框中。
ListBox 类的 get() 方法返回所选项目的列表。默认情况下,只能选择一个项目。“删除”按钮获取所选项目的值并将其从集合中删除。