How to use combobox widget to display a drop-down list with autocomplete functionality in Tkinter Python?

share link

by Abdul Rawoof A R dot icon Updated: Jul 11, 2023

technology logo
technology logo

Solution Kit Solution Kit  

A Tkinter Combobox is a widget in the Tkinter library of Python. It combines the functionalities of an entry field and a dropdown list. It allows selecting an option from a predefined list of values or entering a custom value. The Combobox uses a graphical user interface (GUI) element in desktop applications.  


There are several comboboxes you can use, including text, checkbox, and list boxes. Here's a brief explanation of each type:  

Text Combobox:  

The text combobox is also known as a dropdown or a simple combobox. It allows the user to select an option from a predefined list. A list of options is displayed when the combobox is clicked or activated. Then the user can choose one option by clicking on it. The selected option is then displayed in the combobox. This is the most common type of combobox used in Tkinter.  

Checkbox Combobox:  

A checkbox combobox is a specialized text version where the options are checkboxes. The user can select many options by checking the corresponding checkboxes. This combobox type is useful when allowing users to select many choices from a list.  

Listbox Combobox:  

The listbox combobox is also known as a dropdown list or a list combobox. It displays a list of options in a dropdown format. But, unlike the text combobox, the listbox combobox displays all the options simultaneously. It does without requiring the user to click or activate the dropdown. The user selects one or more options from the list using the mouse or keyboard.  


When it comes to populating combobox, the methods depend on your framework. But I can provide you with some general methods that are used to populate a combobox. These methods include using the set() and get() methods. Let's explore them:  

Using the set() and get() methods:  

  • set(): This method sets the current value of the combobox. You can use it to set a default or initial value for the combobox.  
  • get(): This method retrieves the currently selected value from the combobox. You can use it to retrieve the selected value for further processing.  

Adding items manually:  

You can manually add items to the combobox using the addItem() or add() method. You provide the items one by one as parameters to the method.  

Populating from a list or array:  

You can populate the combobox by providing a list or array of items using a specific method or property.  

Populating from a data source:  

If you have a data source like a database or an API, you can retrieve the data and populate the combobox.  

Using data binding:  

You can bind the combobox to a data source in some frameworks or libraries. Any changes in the data source will reflect in the combobox.  


The tkinter.ttk module offers access to the Tk-themed widget set included in Tk 8.5 and greater. The basic idea is to separate the code-implementing behavior from its appearance. This has the advantage of using the new widgets, giving platforms a better look and feel. 


But, the replacement widgets are only partially compatible. The ttk package, a unique modification of Python Tkinter, introduces this extra component. The tkinter module is available in Python standard library. It has to be imported while writing a program in Python to generate a GUI. Methods on a ttk include all those described in Section 46, Methods common to all ttk widgets. Also, all the methods on the Tkinter widget are described in Section 10, The widget, plus.  


The Tkinter Combobox is a UI widget available in the Tkinter library. It serves the purpose of selecting values from a dropdown list. The difference is that widget options for styling are no longer present in Ttk widgets. We start this code by importing the module in the same Python file as tk and importing the ttk class of it.  


Here is an example of using the combobox widget to display a dropdown list. Using the autocomplete functionality in Tkinter Python: