PySimpleGUI ListBox元素

PySimpleGUI ListBox元素

PySimpleGUI工具包中的这个GUI元素是一个容器,可以显示一个或多个项目,并从中选择。你可以指定一次可以看到的项目的数量。如果项目的数量或其长度超过了Listbox的尺寸,一个垂直和/或水平的滚动条就会出现在元素的右侧或底部。

列表框类的重要属性如下

序号 属性和描述
1 Values 要显示的值的列表。可以是任何类型,包括混合类型
2 default_values 最初应该选择哪些值?
3 select_mode 选择模式用于确定只能选择1个项目还是多个项目,以及如何选择它们。
4 no_scrollbar 控制是否应该显示滚动条。如果为 “真”,将不显示滚动条。
5 horizontal_scroll 控制是否应该显示水平滚动条。如果为 “真”,除了垂直滚动条外,还会显示水平滚动条。

select_mode “属性可以有以下列举的值之一

  • LISTBOX_SELECT_MODE_SINGLE (默认)

  • listbox_select_mode_multiple(默认)

  • listbox_select_mode_browse(默认)

  • listbox_select_mode_extended(扩展的)

列表框类从元素类继承了update()方法。当窗口被更新时,它对一些属性的变化产生影响。update()方法的参数是

序号 属性和描述
1 Values 将显示给用户的新的选择列表
2 **Disabled ** 该元素的禁用或启用状态
3 set_to_index 突出所示的项目。如果 parm 是一个int,一个项目将被设置。如果是一个列表,那么列表中的每个条目都会被加亮。
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()

运行上述代码,在输入框中输入一些文本,然后按添加按钮。该文本将被添加到它下面的列表框中。

PySimpleGUI - ListBox元素

列表框类的get()方法返回所选项目的列表。默认情况下,只有一个项目可以选择。删除按钮获得所选项目的值并将其从集合中删除。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程