Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Todo app in Python
- # Git hub -> github.com/AyanUpadhya
- # Email -> ayanU881@gmail.com
- from tkinter import *
- from tkinter import messagebox as ms
- import pickle
- root = Tk()
- root.title('Todo @ Code Tech')
- root.geometry('300x360')
- root.config(bg="#2f3232")
- #FUNCTIONS
- task=StringVar()
- def add():
- new_task= task.get()
- if new_task:
- task_list.insert(END,new_task)
- task_entry.delete(0,END)
- else:
- return ms.showinfo('Error',"No task found")
- def load():
- task_list.delete(0,END)
- try:
- tasks = pickle.load(open('taskdata.dat','rb'))
- for task in tasks:
- task_list.insert(END,task)
- except:
- ms.showwarning(title="warnning!",message="Taskdata not found")
- def delete():
- task_list.delete(ANCHOR)
- def save():
- tasks = task_list.get(0,task_list.size())
- pickle.dump(tasks,open('taskdata.dat','wb'))
- ms.showinfo('Done',"Tasks Saved")
- #events
- def add_task(event):
- add()
- def delete_task(event):
- delete()
- # tasks frame
- tasks_frame = Frame(root)
- tasks_frame.pack(fill="both")
- #scrollbar
- tasks_scrollbar = Scrollbar(tasks_frame)
- tasks_scrollbar.pack(side= RIGHT, fill='y')
- #listbox
- task_list= Listbox(tasks_frame,width=50,selectbackground='gray',font=15)
- task_list.pack(fill="both")
- #entry widget
- task_entry=Entry(root,width=50,textvariable=task,font=15)
- task_entry.pack(pady=2,expand=True,fill="both")
- #buttons
- add_btn=Button(root,text='Add',width=50,font=('Helvetica',11,'bold'),command=add)
- add_btn.pack()
- load_btn=Button(root,text='Load',width=50,font=('Helvetica',11,'bold'),command=load)
- load_btn.pack()
- del_btn=Button(root,text="Delete Task",width=50,font=('Helvetica',11,'bold'),command=delete)
- del_btn.pack()
- save_btn=Button(root,text="Save Tasks",width=50,font=('Helvetica',11,'bold'),command=save)
- save_btn.pack()
- #configurations
- task_list.config(yscrollcommand=tasks_scrollbar.set)
- tasks_scrollbar.config(command=task_list.yview)
- #event handle
- root.bind('<Return>',add_task) #hit enter to add task
- root.bind('<Delete>',delete_task)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement