Home » To-Do list application using Python and Tkinter

To-Do list application using Python and Tkinter

Java SE 11 Programmer II [1Z0-816] Practice Tests
Spring Framework Basics Video Course
Java SE 11 Developer (Upgrade) [1Z0-817]
Java SE 11 Programmer I [1Z0-815] Practice Tests
Oracle Java Certification
1 Year Subscription

A To-do list application is a very good beginners project, lets get this started for Python/

To build a simple To-Do list application using Python and Tkinter, we'll follow these 5 simple steps:

  1. Set up the main window: Create the main application window using Tkinter.
  2. Add a listbox to display tasks: Use a Listbox widget to display the tasks.
  3. Add entry widgets for adding tasks: Use an Entry widget to input new tasks.
  4. Add buttons for adding and deleting tasks: Use Button widgets to add and delete tasks from the list.
  5. Implement functionality for the buttons: Write functions to handle adding and deleting tasks.

Let's get started with the step by step implementation:

Step 1: Set Up the Main Window

First, we will set up the main window for the application.

import tkinter as tk
from tkinter import messagebox

# Initialize the main window
root = tk.Tk()
root.title("To-Do List Application")
root.geometry("400x400")

Step 2: Add a Listbox to Display Tasks

We'll add a Listbox widget to display the list of tasks.

# Create a Listbox to display tasks
task_listbox = tk.Listbox(root, width=50, height=15)
task_listbox.pack(pady=20)

Step 3: Add Entry Widgets for Adding Tasks

Next, we'll add an Entry widget for the user to input new tasks.

# Create an Entry widget for adding tasks
task_entry = tk.Entry(root, width=50)
task_entry.pack(pady=10)

Step 4: Add Buttons for Adding and Deleting Tasks

We'll add buttons for adding and deleting tasks.

# Create a frame for the buttons
button_frame = tk.Frame(root)
button_frame.pack(pady=20)

# Create Add Task button
add_task_button = tk.Button(button_frame, text="Add Task", command=lambda: add_task())
add_task_button.pack(side=tk.LEFT, padx=10)

# Create Delete Task button
delete_task_button = tk.Button(button_frame, text="Delete Task", command=lambda: delete_task())
delete_task_button.pack(side=tk.LEFT, padx=10)

Step 5: Implement Functionality for the Buttons

Now, we will implement the functions to handle adding and deleting tasks.

# Function to add a task
def add_task():
    task = task_entry.get()
    if task != "":
        task_listbox.insert(tk.END, task)
        task_entry.delete(0, tk.END)
    else:
        messagebox.showwarning("Warning", "You must enter a task.")

# Function to delete a selected task
def delete_task():
    try:
        selected_task_index = task_listbox.curselection()[0]
        task_listbox.delete(selected_task_index)
    except IndexError:
        messagebox.showwarning("Warning", "You must select a task to delete.")

Complete Code

Here is the complete code for the To-Do list application:

import tkinter as tk
from tkinter import messagebox

# Function to add a task
def add_task():
    task = task_entry.get()
    if task != "":
        task_listbox.insert(tk.END, task)
        task_entry.delete(0, tk.END)
    else:
        messagebox.showwarning("Warning", "You must enter a task.")

# Function to delete a selected task
def delete_task():
    try:
        selected_task_index = task_listbox.curselection()[0]
        task_listbox.delete(selected_task_index)
    except IndexError:
        messagebox.showwarning("Warning", "You must select a task to delete.")

# Initialize the main window
root = tk.Tk()
root.title("To-Do List Application")
root.geometry("400x400")

# Create a Listbox to display tasks
task_listbox = tk.Listbox(root, width=50, height=15)
task_listbox.pack(pady=20)

# Create an Entry widget for adding tasks
task_entry = tk.Entry(root, width=50)
task_entry.pack(pady=10)

# Create a frame for the buttons
button_frame = tk.Frame(root)
button_frame.pack(pady=20)

# Create Add Task button
add_task_button = tk.Button(button_frame, text="Add Task", command=add_task)
add_task_button.pack(side=tk.LEFT, padx=10)

# Create Delete Task button
delete_task_button = tk.Button(button_frame, text="Delete Task", command=delete_task)
delete_task_button.pack(side=tk.LEFT, padx=10)

# Run the application
root.mainloop()

This code sets up a basic To-Do list application with functionalities to add and delete tasks.

You can run this script in your Python environment to see the application in action.

You may also like

Leave a Comment

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More