Advertisement
AyanUpadhaya

Todo application in python

Aug 5th, 2021
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.11 KB | None | 0 0
  1. # Todo app in Python
  2. # Git hub -> github.com/AyanUpadhya
  3. # Email -> ayanU881@gmail.com
  4.  
  5.  
  6. from tkinter import *
  7. from tkinter import messagebox as ms
  8. import pickle
  9.  
  10.  
  11. root = Tk()
  12. root.title('Todo @ Code Tech')
  13. root.geometry('300x360')
  14. root.config(bg="#2f3232")
  15.  
  16.  
  17. #FUNCTIONS
  18. task=StringVar()
  19.  
  20. def add():
  21.     new_task= task.get()
  22.    
  23.     if new_task:
  24.         task_list.insert(END,new_task)
  25.         task_entry.delete(0,END)
  26.     else:
  27.         return ms.showinfo('Error',"No task found")
  28.  
  29. def load():
  30.     task_list.delete(0,END)
  31.     try:
  32.         tasks = pickle.load(open('taskdata.dat','rb'))
  33.         for task in tasks:
  34.             task_list.insert(END,task)
  35.     except:
  36.         ms.showwarning(title="warnning!",message="Taskdata not found")
  37.  
  38. def delete():
  39.     task_list.delete(ANCHOR)
  40.  
  41.    
  42. def save():
  43.     tasks = task_list.get(0,task_list.size())
  44.     pickle.dump(tasks,open('taskdata.dat','wb'))
  45.     ms.showinfo('Done',"Tasks Saved")
  46.  
  47. #events
  48. def add_task(event):
  49.     add()
  50.  
  51. def delete_task(event):
  52.     delete()
  53.  
  54. # tasks frame
  55. tasks_frame = Frame(root)
  56. tasks_frame.pack(fill="both")
  57.  
  58. #scrollbar
  59. tasks_scrollbar = Scrollbar(tasks_frame)
  60. tasks_scrollbar.pack(side= RIGHT, fill='y')
  61.  
  62. #listbox
  63. task_list= Listbox(tasks_frame,width=50,selectbackground='gray',font=15)
  64. task_list.pack(fill="both")
  65.  
  66. #entry widget
  67. task_entry=Entry(root,width=50,textvariable=task,font=15)
  68. task_entry.pack(pady=2,expand=True,fill="both")
  69.  
  70. #buttons
  71. add_btn=Button(root,text='Add',width=50,font=('Helvetica',11,'bold'),command=add)
  72. add_btn.pack()
  73.  
  74. load_btn=Button(root,text='Load',width=50,font=('Helvetica',11,'bold'),command=load)
  75. load_btn.pack()
  76.  
  77. del_btn=Button(root,text="Delete Task",width=50,font=('Helvetica',11,'bold'),command=delete)
  78. del_btn.pack()
  79.  
  80. save_btn=Button(root,text="Save Tasks",width=50,font=('Helvetica',11,'bold'),command=save)
  81. save_btn.pack()
  82.  
  83. #configurations
  84. task_list.config(yscrollcommand=tasks_scrollbar.set)
  85. tasks_scrollbar.config(command=task_list.yview)
  86.  
  87. #event handle
  88. root.bind('<Return>',add_task) #hit enter to add task
  89. root.bind('<Delete>',delete_task)
  90.  
  91.  
  92. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement