PySimpleGUI 组合元素
Combo元素是一个下拉列表。它最初显示的是一个输入元素,其右侧有一个箭头。当箭头被点击时,列表框向下拉动。因此,你可以在输入文本框中输入文本,或从下拉列表中选择一个项目,这样所选的项目就会显示在输入框中。
Combo元素的功能或多或少与Listbox类似。它是由列表中的字符串项目集合填充的。你也可以指定显示在顶部的默认值。
以下是Combo类的重要属性—-。
序号 | 属性和描述 |
---|---|
1 | 要显示和选择的 值 的列表。 |
2 | default_value 作为初始值显示的选择。 |
3 | size width, height.宽度=字符宽度,高度=列表中要显示的条目数。 |
get()方法返回Combo的当前(现在)值。update()方法修改Combo对象的以下属性
编号:Sr.No. | 属性和描述 |
---|---|
1 | 根据以前的选择列表的新列表,改变当前选择的 值 |
2 | 改变选择列表中的 数值 |
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的弹出窗口,要求确认。如果点击了 “是 “按钮,对应于Combo元素文本框的项目将从列表中删除,该元素将由剩余的项目重新填充。
下面是该窗口的截图。