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()
输出: