PySimpleGUI - Combo 组合元素
Combo 组合元素是一个下拉列表。 它最初显示一个 Input 元素,其右侧有一个箭头。 单击箭头时,列表框会向下拉。 因此,您可以在输入文本框中输入文本,或从下拉列表中选择一个项目,以便所选项目显示在输入框中。
Combo 组合元素的功能或多或少与 Listbox 相似。 它由列表中的字符串项集合填充。 您还可以指定要显示在顶部的默认值。
以下是Combo类的重要属性 −
序号 | 属性 & 描述 |
---|---|
1 | values 要显示和选择的值列表。 |
2 | default_value 要显示为初始值的选择。 |
3 | size 宽度,高度。 宽度 = 字符宽度,高度 = 要在列表中显示的条目数。 |
get() 方法返回组合的当前(当前)值。 update() 方法修改 Combo 对象的以下属性 −
序号 | 属性 & 描述 |
---|---|
1 | value 根据先前选择列表的新列表更改当前选择的值 |
2 | values 改变选择列表 |
3 | set_to_index 将选择更改为从索引 index = 0 开始的特定选项 |
4 | readonly 如果为 True,则使元素只读(用户不能更改任何选择)。 |
在下面的示例中,我们使用 Combo 元素的选择更改事件。 如果用户通过在弹出对话框中按"Yes"进行响应,则删除下拉列表中的选定元素。
import PySimpleGUI as psg names = [] lst = psg.Combo(names, font=('Arial Bold', 14), expand_x=True, enable_events=True, readonly=False, key='-COMBO-') layout = [[lst, psg.Button('Add', ), psg.Button('Remove'), psg.Button('Exit')], [psg.Text("", key='-MSG-', font=('Arial Bold', 14), justification='center')] ] window = psg.Window('Combobox Example', layout, size=(715, 200)) while True: event, values = window.read() print(event, values) if event in (psg.WIN_CLOSED, 'Exit'): break if event == 'Add': names.append(values['-COMBO-']) print(names) window['-COMBO-'].update(values=names, value=values['-COMBO-']) msg = "A new item added : {}".format(values['-COMBO-']) window['-MSG-'].update(msg) if event == '-COMBO-': ch = psg.popup_yes_no("Do you want to Continue?", title="YesNo") if ch == 'Yes': val = values['-COMBO-'] names.remove(val) window['-COMBO-'].update(values=names, value=' ') msg = "A new item removed : {}".format(val) window['-MSG-'].update(msg) window.close()
当 Combo 对象发出事件(由其键"-COMBO-"标识)作为下拉列表中的项目被单击时。 将显示一个 Yes-No 弹出窗口,要求确认。 如果单击"Yes"按钮,则会从列表中删除与 Combo 元素的文本框相对应的项目,并用其余项目重新填充该元素。
窗口截图如下所示 −