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 Element

ListBox 类的 get() 方法返回所选项目的列表。默认情况下,只能选择一个项目。“删除”按钮获取所选项目的值并将其从集合中删除。

pysimplegui_element_class.htm
广告