Advertisement
AyanUpadhaya

Create a Todo List Application in Python / Tkinter

Aug 5th, 2021
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.05 KB | None | 0 0
  1. # Todo app Python3
  2. # library used : tkinter and pickle
  3. # created : 5/08/2021
  4. # twitter : Code Tech -> @ayanupadhaya96
  5. # Special Credit: TokyoEdTech
  6.  
  7. from tkinter import*
  8. from tkinter import messagebox as ms
  9. import pickle
  10.  
  11. root = Tk()
  12. root.title('Todo list @Code Tech')
  13. root.geometry('300x350')
  14.  
  15. def add_task():
  16.     task = entry_task.get()
  17.  
  18.     if task != "":
  19.         list_box.insert(END,task)
  20.         entry_task.delete(0,END)
  21.     else:
  22.         ms.showwarning(title="Warning!",message="You must enter a task")
  23.  
  24. def delete_task():
  25.     try:
  26.         task_index = list_box.curselection()[0]
  27.         list_box.delete(task_index)
  28.  
  29.     except:
  30.         ms.showwarning(title='Warning',message="You must select task to delete")
  31.  
  32. def load_tasks():
  33.     list_box.delete(0,END)
  34.     try:
  35.         tasks = pickle.load(open('tasks.dat','rb'))
  36.         for task in tasks:
  37.             list_box.insert(END,task)
  38.     except:
  39.         ms.showwarning(title="Warning",message="Cannot find task file")
  40.  
  41. def save_task():
  42.     tasks = list_box.get(0,list_box.size())
  43.     pickle.dump(tasks,open('tasks.dat','wb'))
  44.  
  45.  
  46. # Create Gui
  47.  
  48. frame_task = Frame(root)
  49. frame_task.pack(fill="both")
  50.  
  51. #scrollbar
  52. scrollbar_task = Scrollbar(frame_task,orient='vertical')
  53. scrollbar_task.pack(side = RIGHT,fill =Y)  
  54.  
  55. #list box
  56. list_box = Listbox(frame_task,height=10,width=50)
  57. list_box.pack(expand=1,fill="both")
  58.  
  59. #entry widget
  60. entry_task = Entry(root,width = 50)
  61. entry_task.pack()
  62.  
  63. #buttons
  64.  
  65. button_add_task= Button(root,text="Add Task",width=48,command=add_task)
  66. button_add_task.pack()
  67.  
  68. button_delete_task= Button(root,text="Delete Task",width=48,command=delete_task)
  69. button_delete_task.pack()
  70.  
  71. button_load_tasks= Button(root,text="Load Tasks",width=48,command=load_tasks)
  72. button_load_tasks.pack()
  73.  
  74. button_save_tasks= Button(root,text="Save Tasks",width=48,command=save_task)
  75. button_save_tasks.pack()
  76.  
  77. #configurations
  78.  
  79. list_box.configure(bg='white',fg='black')
  80. list_box.config(yscrollcommand=scrollbar_task.set)
  81. scrollbar_task.config(command=list_box.yview)
  82.  
  83. entry_task.configure(bg='white',fg='black')
  84. root.configure(bg="#a4a6a6")
  85.  
  86. root.mainloop()
  87.  
  88.  
  89.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement