📜  Python-Tkinter 中的自动完成组合框

📅  最后修改于: 2022-05-13 01:55:10.955000             🧑  作者: Mango

Python-Tkinter 中的自动完成组合框

先决条件: Python GUI – tkinter

Listbox 小部件用于显示项目列表,用户可以从中选择多个项目。但是你有没有想过,当一个键被按下时,如何返回可能的结果列表?让我们看看下面的方法。

程序的工作

  • 初始化由单词组成的列表。
  • 输入框和列表框被创建并添加到根窗口。
  • Bind函数用于事件处理。为 Entry 字段处理键释放事件。
  • 当在 Entry 中按下任何键时,将调用checkkey()函数。
  • checkkey()函数然后将输入的字符串与现有的列表关键字进行比较,并用匹配的关键字填充列表框。
  • 然后将此数据发送到更新函数,然后更新列表框。

下面是方法。

from tkinter import *
   
      
# Function for checking the
# key pressed and updating
# the listbox
def checkkey(event):
       
    value = event.widget.get()
    print(value)
      
    # get data from l
    if value == '':
        data = l
    else:
        data = []
        for item in l:
            if value.lower() in item.lower():
                data.append(item)                
   
    # update data in listbox
    update(data)
   
   
def update(data):
      
    # clear previous data
    lb.delete(0, 'end')
   
    # put new data
    for item in data:
        lb.insert('end', item)
  
  
# Driver code
l = ('C','C++','Java',
     'Python','Perl',
     'PHP','ASP','JS' )
  
root = Tk()
  
#creating text box 
e = Entry(root)
e.pack()
e.bind('', checkkey)
  
#creating list box
lb = Listbox(root)
lb.pack()
update(l)
   
root.mainloop()

输出:

蟒蛇列表框