PySimpleGUI - ListBox 列表框元素
PySimpleGUI 工具包中的这个 GUI 元素是一个容器,可以显示一个或多个项目,并从中进行选择。 您可以指定一次可见的项目数。 如果项目的数量或它们的长度超过列表框的尺寸,垂直和/或水平滚动条将出现在元素的右侧或底部。
ListBox类的重要属性如下 −
序号 | 属性 & 描述 |
---|---|
1 | Values 要显示的值列表。 可以是任何类型,包括混合类型 |
2 | default_values 初始应该选择哪些值 |
3 | select_mode 选择模式用于确定是否只能选择一项或多项以及如何选择它们。 |
4 | no_scrollbar 控制是否显示滚动条。 如果为 True,则不会显示滚动条 |
5 | horizontal_scroll 控制是否显示水平滚动条。 如果为 True,除了垂直滚动条之外,还将显示水平滚动条 |
"select_mode"属性可以有下列枚举值之一 −
LISTBOX_SELECT_MODE_SINGLE (default)
LISTBOX_SELECT_MODE_MULTIPLE
LISTBOX_SELECT_MODE_BROWSE
LISTBOX_SELECT_MODE_EXTENDED
Listbox类继承了Element类的update()方法。 当窗口更新时,它会影响某些属性的变化。 update() 方法的参数是 −
序号 | 属性 & 描述 |
---|---|
1 | Values 要向用户显示的新选择列表 |
2 | Disabled 元素的禁用或启用状态 |
3 | set_to_index 突出显示的项目。 如果 parm 是一个整数,将设置一个条目。 如果是列表,则突出显示列表中的每个条目 |
4 | scroll_to_index 滚动列表框,使该索引最先显示 |
5 | select_mode 改变选择模式 |
6 | Visible 控制元素的可见性 |
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() 方法返回所选项目的列表。 默认情况下,单个项目是可选的。 删除按钮获取所选项目的值并将其从集合中删除。