Ttkinter模块模糊查询下拉菜单自动收回

Ttkinter模块下拉菜单在不选择时怎么自动收回: 做了一个模糊查询的模块,目前可以实现查询到匹配的选择,但是现在有个问题是,匹配到了之后,如果我不选择下拉菜单的内容,这个下拉菜单就一直显示。
想实现的功能:比如:我输入cq,匹配出了cqs,但是我不选择,直接点目的地,匹配的下拉菜单就自动收回

img

def text_change(event,result):
    current = text1.get()
    current_value = event.char
    # \x08就是 删除按钮
    if current_value == '\x08':
        current = current[:-1]
    else:
        current += current_value
    if current.strip()!= "":
       handlerResult(current,result)
    else:
        # place_forget隐藏控件
        LB1.place_forget()

def handlerResult(current,result):
   # LB1.place()
    print("-----------------------------")
    LB1.delete(0, END)
    result1=list(set(result ))
    for i in result1:
        # 总数据中包含输入框中的内容   这里根据你的总数据自己设置
        if current in i[2]:
                LB1.insert(END,i[2]+","+i[0]+","+str(i[1]))
    LB1.place(x=50, y=50)
def send(event):
    # 将双击列表后的文字显示到输入框上
    text1.delete(0, END)
    print(LB1.curselection())
    text1.insert(0, str(LB1.get(LB1.curselection())))
    print(LB1.get(LB1.curselection()))
    # 隐藏列表
    LB1.delete(0, END)
    LB1.place_forget()
    


def handlerAdaptor(fun, *args):
    return lambda event, fun=fun, kwds=args: fun(event, *args)

root = Tk()
# 设置窗体标题
root.title('快递价格')
# 设置窗口大小和位置
root.geometry('1000x400+570+200')
LB1 = Listbox(root, height=7)
label1 = Label(root, text='发出地:')
label2 = Label(root, text='目的地:')
text1 = Entry(root, bg='white', width=20)
text2 = Entry(root, bg='white', width=20)
# 实时监听内容发生变化 **results**为我们的总数据
#text1.bind('', handlerAdaptor(text_change,result))
text1.bind('', lambda event:text_change(event,result))
# 列表
LB1 = Listbox(root, height=7)
LB1.bind('', send)
label1.place(x=5, y=30)
text1.place(x=50, y=30)
label2.place(x=205,y=30)
text2.place(x=250, y=30)
root.mainloop()

只用过 Qt, 可以参考注册回调的方式, 试试监听 FocusOut 的事件