Autocomplete ComboBox in Python-Tkinter
Last Updated :
20 Dec, 2022
Improve
Prerequisites: Python GUI – tkinter
The Listbox widget is used to display a list of items from which a user can select a number of items. But have you ever wondered, how to return the list of possible results when a key is pressed? Let's see the following approach towards the same.
Working of Program
Python 1==
Output:
- List consisting of words is initialized.
- Entry box and Listbox are created and are added to the root window.
- Bind function is used for event handling. Key release event is handled for an Entry field.
- When any key is pressed in the Entry,
checkkey()
function is called. checkkey()
function then compares the entered string with existing list keywords and populates Listbox with matching keywords.- Then this data is sent to update function which then updates the Listbox.
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('<KeyRelease>', checkkey)
#creating list box
lb = Listbox(root)
lb.pack()
update(l)
root.mainloop()

