Hey guys, welcome to this article on Tkinter Listbox and Option menu using Tkinter. I will walk you through some examples for the same.
What is a Listbox?
The Listbox widget in Tkinter is widely used to display a set of items to the user. The user can select from these items.
We have the basic starter code that we always get, a 400 x 400 and we have got an icon for the title in there.
from tkinter import *
root=Tk()
root.title("Listbox demo")
root.geometry("400x480")
root.mainloop()
So to create a list box, you just define it like always and a list box is just a type of widget with tkinter.
Create your first Tkinter listbox widget
Let’s create a list box, we’ll call it my_listbox
and set that equal to a Listbox()
and put it in root
.
We will pack this on the screen and let’s give this a pack()
and give it a “pady” of 15.
#Listbox
my_listbox=Listbox(root)
my_listbox.pack(pady=15)
Adding items to the listbox individually
Now, in order to put things in, you could do it in a couple of different ways. You can just do it manually or you could create a list and loop through the list and put each of those things in it one at a time.
We will be using my_listbox.insert
method. This method takes two parameters. There’s an index and a string.
So the index is the index number, the item in our list box, the position in which we want to put it in and the first one is ‘0’.
# Add item to listbox
my_listbox.insert(END, "First")
my_listbox.insert(END, "Second")
Adding mutliple items to a Tkinter listbox using loops
Let’s add a list of items. So I’m going to just create my_list
and it’s just going to be a python list and we can put anything we want in here. So I’m just going to insert “one”, “two” and “three” and that’s fine. Now we can just loop through the list and put each item in there.
my_list = ["One", "Two", "Three"]
for item in my_list:
my_listbox.insert(END, item)
Adding Tkinter Buttons to Delete Listbox Items
Now that we know how to add listbox items, let’s create a Tkinter button to delete the items.
If we click on one of these items they get highlighted, so let’s create a button. We will call it my_button and that’s going to be in root and pack my_button
with a pady of 10.
my_button = Button(root, text="Delete", command=delete)
my_button.pack(pady=10)
Now, we need to create a delete
function. When something is highlighted in your list box after you’ve clicked on it, it becomes the anchor. So, we want to delete the ANCHOR.
def delete():
my_listbox.delete(ANCHOR)
my_label.config(text=" ")
The complete code for Tkinter Listbox widget implementation
from tkinter import *
root=Tk()
root.title("Listbox demo")
root.geometry("400x480")
#Listbox
my_listbox=Listbox(root)
my_listbox.pack(pady=15)
# Add item to listbox
my_listbox.insert(END, "First")
my_listbox.insert(END, "Second")
my_list = ["One", "Two", "Three"]
for item in my_list:
my_listbox.insert(END, item)
def delete():
my_listbox.delete(ANCHOR)
my_label.config(text=" ")
my_button = Button(root, text="Delete", command=delete)
my_button.pack(pady=10)
global my_label
my_label=Label(root, text=" ")
my_label.pack(pady=5)
root.mainloop()
The output of the above code is as shown below:

What is an Option menu?
The OptionMenu class is a helper class that creates a popup menu, and a button to display it. This widget generates a drop down list with many option values.
Let’s create a simple Option Menu structure.
Create your first Tkinter Option menu
To create an options menu based on the dropdown menu. The first step for this is to list out Basic security questions. Pass them into an options menu and create an entry for an answer.
First, we will create list of questions.
Question = [“What is your mother’s maiden name?”,
“ Who is your favorite author?”,
“ What was your first pets name? “,
“What street did you grow up on? “
]
Now we have to pass these through a variable tkvarq. To understand creation of tk variable, the first alternate to pass barrier is root and set the questions for this variable using the set().
This is a string variable StringVar , we pass the questions into it as shown below:
tkvarq = StringVar(root)
tkvarq.set(questions[0])
Creating the Tkinter OptionMenu object
The questions are displayed by creating an object of OptionMenu
and the answers can be entered on the answer_entry
text box created. This text box has been created using the Entry
class.
question_menu = OptionMenu(root, tkvarq, *questions)
question_menu.pack()
#Answer entry
answer_entry = Entry(root, width=30)
answer_entry.pack()
The complete code for Tkinter OptionMenu widget implementation
from tkinter import *
root = Tk()
root.title(“Option Menu”)
root.geometry(‘700x500’)
# Create the list of questions
# Pass them into an option menu
# Create an entry for the answer
# Create submit button
def print_answers():
print (“Q: {} A: {} “,format(tkvarq.get(), answer_entry.get()))
return None
Question = [“What is your mother’s maiden name?”,
“ Who is your favorite author?”,
“ What was your first pets name? “,
“What street did you grow up on? “
]
tkvarq = StringVar(root)
tkvarq.set(questions[0])
question_menu = OptionMenu(root, tkvarq, *questions)
question_menu.pack()
#Answer entry
answer_entry = Entry(root, width=30)
answer_entry.pack()
#Submit button
submit_button = Button(root, test=’Submit’, command=print_answers)
submit_button.pack()
root.mainloop()
This code generates an options menu which contains the questions. You can choose one question that you wish to answer and write your answer for it in the text box provided.
Kindly note, this code does not contain the validations, meaning it will not tell you if the answer entered is correct or not.
The output of the above code is as shown below:

Conclusion
This comes to the end of our tutorial on the Tkinter Listbox and option menu. Do try out the examples shown and give your feedback in the comment section below.