Python-SimpleGui-Listbox-Search之后我丢失了突出显示

Python-SimpleGui-Listbox-Search之后我丢失了突出显示,python,listbox,highlight,pysimplegui,Python,Listbox,Highlight,Pysimplegui,我有一个非常简单的界面,其中有一个带有员工姓名的列表框和一个输入文本,我可以在其中输入姓名以便更快地搜索 我没有在输入中添加任何文本,我可以选择员工姓名,突出显示如下: 但是,如果我搜索名称(然后我将仅使用包含我编写的文本的名称更新新列表的此元素),我将无法获得突出显示,如您所见: 我的代码: import PySimpleGUI as sg employees_list = ['John','Pete','Anne','Jack','Golsing'] layout = [[sg.Inp

我有一个非常简单的界面,其中有一个带有员工姓名的列表框和一个输入文本,我可以在其中输入姓名以便更快地搜索

我没有在输入中添加任何文本,我可以选择员工姓名,突出显示如下:

但是,如果我搜索名称(然后我将仅使用包含我编写的文本的名称更新新列表的此元素),我将无法获得突出显示,如您所见:

我的代码:

import PySimpleGUI as sg

employees_list = ['John','Pete','Anne','Jack','Golsing']
layout = [[sg.Input(visible=True,size=(15, 1), enable_events=True,key='-input-')]
        ,[sg.Listbox(values=employees_list,size=(15, 3),enable_events=True, select_mode=sg.LISTBOX_SELECT_MODE_MULTIPLE, key='-employee-')]]

Window = sg.Window('DEV', layout)

while True:
    Event, Values = Window.read()

    if Event == sg.WIN_CLOSED:
        break

    if Values['-input-'] != '':
        search = Values['-input-'].upper()
        new_employees = [x.upper() for x in employees_list if search in x]
        Window.Element('-employee-').Update(values=new_employees, select_mode=sg.LISTBOX_SELECT_MODE_MULTIPLE)
有人经历过吗?我怎样才能解决它


谢谢

您应该在这里处理不同的事件

如果值['-input-']!='':
在这里,如果生成任何事件,您将执行此操作,因此当您单击
Listbox
时,
Listbox
将被更新,因此选择将设置为无,这就是为什么没有选择或突出显示任何项

所以代码应该是

如果事件=='-input-'和值['-input-']!='':
在这里,当输入为空时,不会将列表框恢复为完整列表。所以也许你需要处理另一个案子

如果事件=='-input-'和值['-input-']='':
#使用值=员工\列表更新列表框