|
| 1 | +import tkinter as tk |
| 2 | +from tkinter import messagebox |
| 3 | + |
| 4 | +class ToDoListGUI: |
| 5 | + def __init__(self, master): |
| 6 | + self.master = master |
| 7 | + self.master.title("To-Do List") |
| 8 | + |
| 9 | + self.tasks = [] |
| 10 | + |
| 11 | + self.task_entry = tk.Entry(master, width=50) |
| 12 | + self.task_entry.grid(row=0, column=0, padx=10, pady=10) |
| 13 | + |
| 14 | + self.add_button = tk.Button(master, text="Add Task", command=self.add_task) |
| 15 | + self.add_button.grid(row=0, column=1, padx=5, pady=10) |
| 16 | + |
| 17 | + self.delete_button = tk.Button(master, text="Delete Task", command=self.delete_task) |
| 18 | + self.delete_button.grid(row=1, column=1, padx=5, pady=10) |
| 19 | + |
| 20 | + self.complete_button = tk.Button(master, text="Mark as Completed", command=self.mark_completed) |
| 21 | + self.complete_button.grid(row=2, column=1, padx=5, pady=10) |
| 22 | + |
| 23 | + self.task_listbox = tk.Listbox(master, width=50, height=10) |
| 24 | + self.task_listbox.grid(row=1, column=0, padx=10, pady=10, rowspan=2) |
| 25 | + |
| 26 | + def add_task(self): |
| 27 | + task = self.task_entry.get() |
| 28 | + if task: |
| 29 | + self.tasks.append(task) |
| 30 | + self.task_listbox.insert(tk.END, task) |
| 31 | + self.task_entry.delete(0, tk.END) |
| 32 | + else: |
| 33 | + messagebox.showwarning("Warning", "Please enter a task.") |
| 34 | + |
| 35 | + def delete_task(self): |
| 36 | + selected_index = self.task_listbox.curselection() |
| 37 | + if selected_index: |
| 38 | + index = selected_index[0] |
| 39 | + del self.tasks[index] |
| 40 | + self.task_listbox.delete(index) |
| 41 | + else: |
| 42 | + messagebox.showwarning("Warning", "Please select a task to delete.") |
| 43 | + |
| 44 | + def mark_completed(self): |
| 45 | + selected_index = self.task_listbox.curselection() |
| 46 | + if selected_index: |
| 47 | + index = selected_index[0] |
| 48 | + self.tasks[index] += " - Completed" |
| 49 | + self.task_listbox.delete(index) |
| 50 | + self.task_listbox.insert(tk.END, self.tasks[index]) |
| 51 | + else: |
| 52 | + messagebox.showwarning("Warning", "Please select a task to mark as completed.") |
| 53 | + |
| 54 | +def main(): |
| 55 | + root = tk.Tk() |
| 56 | + todo_app = ToDoListGUI(root) |
| 57 | + root.mainloop() |
| 58 | + |
| 59 | +if __name__ == "__main__": |
| 60 | + main() |
0 commit comments