A simple and user-friendly Graphical To-Do List Application built using Python (Tkinter).
This app allows you to add, edit, mark complete/incomplete, delete, and refresh tasks.
All tasks are saved automatically to a tasks.txt file, making them persist across sessions.
Enter a task in the input box and click Add Task or press Enter.
Tasks appear in a scrollable list with a checkmark (✓) for completed tasks.
Select a task and click:
- Mark Complete
- Mark Incomplete
You can also double-click a task to toggle completion.
Select a task → click Edit → update the text.
Select a task → click Delete A confirmation message appears before removing the task.
Loads tasks again from tasks.txt and refreshes the list.
Tasks are saved in tasks.txt using the format:
description|True/False
project_folder/
│── todo_app.py # Main application file
│── tasks.txt # Automatically created storage file
- The file
tasks.txtis created automatically if it does not already exist. - Each line contains one task with its completion state.
Save the script as:
todo_app.py
Python 3.x is required.
Open terminal / CMD inside the folder and run:
python todo_app.py
The graphical To-Do List window will appear.
- Type a task in the entry box.
- Press Enter or click Add Task.
Click once on a task from the list.
Click:
- Mark Complete
- Mark Incomplete
Or double-click the task to toggle.
- Select a task
- Click Edit
- Modify the description
- Select a task
- Click Delete
- Confirm deletion
Reload tasks from the file using Refresh.
The function load_tasks() reads tasks from tasks.txt and populates them into a list of dictionaries like:
{"description": "Buy milk", "completed": False}Every time you:
- Add
- Edit
- Mark complete/incomplete
- Delete
…the file is updated with the new state via save_tasks().
Built using Tkinter widgets:
Entryfor inputListboxfor tasks- Buttons for actions
- Scrollbar
- Status bar showing messages like "Added: Task"
1. [✓] Buy groceries
2. [ ] Finish project report
3. [ ] Pay electricity bill
- Python 3.x
- Tkinter (comes pre-installed with Python on Windows/macOS/Linux)