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() 方法返回所选项目的列表。 默认情况下,单个项目是可选的。 删除按钮获取所选项目的值并将其从集合中删除。

❮ PySimpleGUI 元素类