Python Tkinter Combobox
Python provides various libraries for developing Graphical User Interfaces (GUIs) application such as PyQT, Tkinter, Kivy, and PySide. Tkinter is the standard GUI library that provides a fast and easy way to create GUI applications. It is also called the Tk interface. It is an original GUI library for Tcl (Tool Command Language). Tkinter comes pre-installed with Python. The greatest strength of Tkinter is its straightforwardness. It accompanies a wide scope of essential widgets for almost all common tasks, such as text, catches, radio catches, checkboxes, comboboxes, scales, names, or drawing canvas.
The combobox is an important widget, and it is found in many applications. It allows a user to select from a list of options. It holds multiple values but shows only one option at a time. You have generally seen this on a Macintosh and Windows interface. In this article, you will learn how to create a combobox using the Tkinter library.
Import the Module
This widget is a class of the ttk module of the Tkinter library. To start using ttk, import its module by following the Tk module. Here, we override the widgets of the tk module with the ttk module, as ttk provides a better look and feel across many platforms. It is more modern and configured with different styles.
from tkinter import *
from tkinter.ttk import *
Tkinter Combobox
The ttk.Combobox widget is used for tkinter drop down list. The syntax is:
combobox = ttk.Combobox(master, option=value, ...)
These are some options accepted by this widget:
Options | Descriptions |
justify | The alignment of text within the widget. |
height | The height of the pop-down listbox. |
postcommand | It is called immediately before displaying the values. |
textvariable | It specifies a name whose value is linked to the widget value. |
values | It specifies the list of values to display in the drop-down listbox. |
width | It specifies the width of the entry window. |
Tkinter Combobox Example
Here, we instance the Tkinter combobox widget and also assign the values that will appear in the drop-down list and also configure the fonts for labels and width for both labels and combobox.
import tkinter as tk
from tkinter import ttk
# Creating tkinter window and set dimensions
window = tk.Tk()
window.title('Combobox')
window.geometry('500x250')
# label text for title
ttk.Label(window, text = "Choose the country and vote for them",
background = 'cyan', foreground ="black",
font = ("Times New Roman", 15)).grid(row = 0, column = 1)
# Set label
ttk.Label(window, text = "Select the Country :",
font = ("Times New Roman", 12)).grid(column = 0,
row = 5, padx = 5, pady = 25)
# Create Combobox
n = tk.StringVar()
country = ttk.Combobox(window, width = 27, textvariable = n)
# Adding combobox drop down list
country['values'] = (' India',
' China',
' Australia',
' Nigeria',
' Malaysia',
' Italy',
' Turkey',
' Canada')
country.grid(column = 1, row = 5)
country.current()
window.mainloop()
It returns the following on execution-
Tkinter Combobox Event
The following example demonstrates the Tkinter Combobox Event.
from tkinter import *
from tkinter import ttk
def callback():
l2.configure(text=cmb.get())
window=Tk()
window.title('Combobox')
window.geometry('300x200')
course=["Pizza","Burger","Noodles"]
l1=Label(window,text="Choose Your Favorite Food")
l1.grid(column=0, row=0)
cmb=ttk.Combobox(window,values=course,width=30)
cmb.grid(column=0, row=1)
cmb.current(0)
btn=Button(window,text="Click Here",command=callback)
btn.grid(column=0, row=2)
l2=Label(window,text="")
l2.grid(column=0, row=3)
window.mainloop()
It returns the following output -
Tkinter Combobox Fonts
The following example demonstrates the Tkinter Combobox Fonts.
from tkinter import *
from tkinter import ttk
def callback():
l2.configure(text=cmb.get())
window=Tk()
window.title('Combobox')
window.geometry('300x200')
fontStyle = ("cooper", 17, "bold")
course=["Pizza","Burger","Noodles"]
l1=Label(window,text="Choose Your Favorite Food")
l1.grid(column=0, row=0)
cmb=ttk.Combobox(window,values=course,width=30,
font = fontStyle)
cmb.grid(column=0, row=1)
cmb.current(0)
btn=Button(window,text="Click Here",command=callback)
btn.grid(column=0, row=2)
l2=Label(window,text="")
l2.grid(column=0, row=3)
window.mainloop()
Related Articles
Python Tkinter Tutorial with ExamplesPython Tkinter Combobox Event Binding
Python Tkinter Geometry Managers
Python3 Tkinter Messagebox
Python Tkinter Frame Widget
Python Tkinter Scale Widget
Entry Field Validation in Tkinter Python
Python Tkinter Text Widget
Python Tkinter Checkbutton Widget
Python 3 Tkinter Menu Bar
Add background image in Python Tkinter
OpenCV histogram equalization color
Color histogram Python OpenCV
Histogram of grayscale image python
High pass filter OpenCV python
Python OpenCV ColorMap
OpenCV Gaussian blur Python
Python OpenCV Overview and Examples