ToDo App

from tkinter import *

from tkinter import messagebox

tasks_list = []

counter = 1

def inputError() :

if enterTaskField.get() == "" :

messagebox.showerror("Input Error")

return 0

return 1

def clear_NumberField() :

taskNumberField.delete(0.0, END)

def clear_taskField() :

enterTaskField.delete(0, END)

# Function for inserting the content

# from the task entry field to the text area

def insertTask():

global counter

value = inputError()

if value == 0 :

return

content = enterTaskField.get() + "\n"

# store task in the list

tasks_list.append(content)

TextArea.insert('end -1 chars', "[ " + str(counter) + " ] " + content)

counter += 1

clear_taskField()


# function for deleting the specified task

def delete() :

global counter

if len(tasks_list) == 0 :

messagebox.showerror("No task")

return

# get the task number, which is required to delete

number = taskNumberField.get(1.0, END)

if number == "\n" :

messagebox.showerror("input error")

return

else :

task_no = int(number)

# function calling for deleting the

# content of task number field

clear_NumberField()

# deleted specified task from the list

tasks_list.pop(task_no - 1)

# decremented

counter -= 1

TextArea.delete(1.0, END)

for i in range(len(tasks_list)) :

TextArea.insert('end -1 chars', "[ " + str(i + 1) + " ] " + tasks_list[i])

if __name__ == "__main__" :

gui = Tk()

gui.configure(background = "light blue")

gui.title("ToDo App")

gui.geometry("250x300")

enterTask = Label(gui, text = "Enter Your Task", bg = "light blue")

enterTaskField = Entry(gui)

Submit = Button(gui, text = "Submit", fg = "Black", bg = "light yellow", command = insertTask)

TextArea = Text(gui, height = 5, width = 25, font = "lucida 13")

taskNumber = Label(gui, text = "Delete Task Number", bg = "Red")

taskNumberField = Text(gui, height = 1, width = 2, font = "lucida 13")

delete = Button(gui, text = "Delete", fg = "Black", bg = "Red", command = delete)

Exit = Button(gui, text = "Exit", fg = "Black", bg = "Red", command = exit)

enterTask.grid(row = 0, column = 2)

enterTaskField.grid(row = 1, column = 2, ipadx = 50)

Submit.grid(row = 2, column = 2)

TextArea.grid(row = 3, column = 2, padx = 10, sticky = W)

taskNumber.grid(row = 4, column = 2, pady = 5)

taskNumberField.grid(row = 5, column = 2)

delete.grid(row = 6, column = 2, pady = 5)

Exit.grid(row = 7, column = 2)

gui.mainloop()


No comments: