Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
How to clear a Tkinter ListBox?
The Tkinter ListBox widget displays a list of selectable items with scrolling capability. To clear all items from a ListBox, use the delete(0, END) method. You can also delete individual items using delete() with specific indices.
Basic ListBox Clearing
The delete() method removes items from the ListBox. Use 0 as the start index and END to clear all items ?
from tkinter import *
from tkinter import ttk
# Create main window
win = Tk()
win.geometry("500x300")
win.title("Clear ListBox Example")
# Create ListBox widget
listbox = Listbox(win, width=40, height=8, font=('Arial', 12))
listbox.pack(pady=20)
# Add sample items
items = ["Apple", "Banana", "Cherry", "Date", "Elderberry"]
for item in items:
listbox.insert(END, item)
def clear_listbox():
listbox.delete(0, END)
status_label.config(text="ListBox cleared!")
def add_items():
for item in items:
listbox.insert(END, item)
status_label.config(text="Items added back")
# Create buttons
button_frame = Frame(win)
button_frame.pack(pady=10)
clear_btn = Button(button_frame, text="Clear ListBox", command=clear_listbox, bg="red", fg="white")
clear_btn.pack(side=LEFT, padx=5)
add_btn = Button(button_frame, text="Add Items", command=add_items, bg="green", fg="white")
add_btn.pack(side=LEFT, padx=5)
# Status label
status_label = Label(win, text="ListBox ready", font=('Arial', 10))
status_label.pack(pady=5)
win.mainloop()
Deleting Selected Items
Use curselection() to get selected indices and delete specific items ?
from tkinter import *
win = Tk()
win.geometry("500x350")
win.title("Delete Selected Items")
# Create ListBox with multiple selection
listbox = Listbox(win, width=40, height=10, selectmode=MULTIPLE, font=('Arial', 11))
listbox.pack(pady=20)
# Add programming languages
languages = ["Python", "Java", "JavaScript", "C++", "Go", "Rust", "Ruby", "PHP"]
for lang in languages:
listbox.insert(END, lang)
def delete_selected():
selected = listbox.curselection()
# Delete from highest index to lowest to avoid index shifting
for index in reversed(selected):
listbox.delete(index)
count = len(selected)
status_label.config(text=f"Deleted {count} item(s)")
def clear_all():
listbox.delete(0, END)
status_label.config(text="All items cleared")
def reset_list():
listbox.delete(0, END)
for lang in languages:
listbox.insert(END, lang)
status_label.config(text="List reset")
# Create control buttons
control_frame = Frame(win)
control_frame.pack(pady=10)
Button(control_frame, text="Delete Selected", command=delete_selected, bg="orange").pack(side=LEFT, padx=5)
Button(control_frame, text="Clear All", command=clear_all, bg="red", fg="white").pack(side=LEFT, padx=5)
Button(control_frame, text="Reset", command=reset_list, bg="blue", fg="white").pack(side=LEFT, padx=5)
# Instructions and status
Label(win, text="Hold Ctrl and click to select multiple items", font=('Arial', 9), fg="gray").pack()
status_label = Label(win, text="Ready", font=('Arial', 10), fg="blue")
status_label.pack(pady=5)
win.mainloop()
Methods Summary
| Method | Purpose | Example |
|---|---|---|
delete(0, END) |
Clear all items | Remove entire list |
delete(index) |
Delete single item | Remove item at position 2 |
curselection() |
Get selected indices | Returns tuple of selected positions |
Key Points
-
ENDis a Tkinter constant representing the last position - When deleting multiple selected items, iterate from highest to lowest index
- Use
selectmode=MULTIPLEto allow multiple selections - Always check if items exist before attempting deletion
Conclusion
Use delete(0, END) to clear all ListBox items, or curselection() with delete() to remove specific selections. Always delete from highest index downward when removing multiple items.
Advertisements
