class ListScreen: global count # 화면 구성 def __init__(self): self.tm = TaskManager() self.p = Profile() CANVAS_SIZE = 600 self.root = Tk() self.root.title("Try, Do it !") self.root.configure(bg="white") self.root.geometry( str(CANVAS_SIZE) + "x" + str(CANVAS_SIZE - 300) + "+300+100") self.root.resizable(False, False) lb1 = Label(self.root, text='Add Tasks', bg="white") lb1.grid(row=0, column=2) lb2 = Label(self.root, text='To do List', bg="white") lb2.grid(row=0, column=7) lb3 = Label(self.root, text='Doing Task', bg="white") lb3.grid(row=7, column=2) # Add Tasks Part self.task = Entry(self.root, width=40, relief="solid", bd=1) self.task.grid(row=1, column=0, columnspan=5) self.priority = IntVar(self.root, 1) frame = Frame(self.root, relief="solid", bd=1, bg="white") frame.grid(row=2, column=0, rowspan=4) rd1 = Radiobutton(frame, bg="white", text="중요 & 긴급", value=1, variable=self.priority, command=self.check_priority) rd1.pack() rd2 = Radiobutton(frame, bg="white", text="중요 & 긴급X", value=2, variable=self.priority, command=self.check_priority) rd2.pack() rd3 = Radiobutton(frame, bg="white", text="중요X & 긴급", value=3, variable=self.priority, command=self.check_priority) rd3.pack() rd4 = Radiobutton(frame, bg="white", text="중요X & 긴급X", value=4, variable=self.priority, command=self.check_priority) rd4.pack() self.tag = Entry(self.root, width=20, relief="solid", bd=1) self.tag.grid(row=2, column=2, columnspan=3) self.year = Entry(self.root, width=6, relief="solid", bd=1) self.year.grid(row=3, column=2) self.month = Entry(self.root, width=6, relief="solid", bd=1) self.month.grid(row=3, column=3) self.day = Entry(self.root, width=6, relief="solid", bd=1) self.day.grid(row=3, column=4) self.bt_add_task = Button(self.root, bg="white", text="Add Task", width=20, command=self.add) self.bt_add_task.grid(row=4, column=2, columnspan=3) # Doing Tasks Part self.task_selected = Entry(self.root, width=40, bg="white", relief="solid", bd=1) self.task_selected.grid(row=8, column=0, columnspan=5) self.bt_update = Button(self.root, text="Update", fg="blue", width=15, bg="white", command=self.update) self.bt_update.grid(row=9, column=0, columnspan=2) self.percent = Entry(self.root, width=10, relief="solid", bd=1) self.percent.grid(row=9, column=3) lb4 = Label(self.root, text="%", bg="white") lb4.grid(row=9, column=4) self.bt_open = Button(self.root, text="Open Your Closet", width=40, bg="white", command=self.open) self.bt_open.grid(row=10, column=0, columnspan=5) # To do List Part self.bt_show_list = Button(self.root, text="Show List", fg="blue", width=40, bg="white", command=self.show_list) self.bt_show_list.grid(row=1, column=5, columnspan=5) self.bt_show_list = Button(self.root, text="Sort", fg="blue", width=40, bg="white", command=self.sort) self.bt_show_list.grid(row=2, column=5, columnspan=5) self.lb_tasks = Listbox(self.root, width=40, relief="solid", bd=1) self.lb_tasks.grid(row=3, column=5, rowspan=7, columnspan=5) self.bt_delete = Button(self.root, text="Delete", fg="brown", width=15, bg="white", command=self.delete) self.bt_delete.grid(row=10, column=5, columnspan=2) self.bt_complete = Button(self.root, text="Doing Tasks", fg="blue", width=8, bg="white", command=self.list_select) self.bt_complete.grid(row=10, column=7) self.bt_complete = Button(self.root, text="Complete", fg="green", width=15, bg="white", command=self.closet) self.bt_complete.grid(row=10, column=8, columnspan=2) self.root.mainloop() # 리스트 박스에서 선택된 항목 찾기 def list_select(self): task = self.lb_tasks.get("active") self.task_selected.delete(0, "end") self.task_selected.insert(0, task) # 리스트 박스에 할 일 목록 보여줌 def show_list(self): # 현재 리스트 지우기 self.clear_listbox() # 리스트 띄우기 for task in self.tm.tasks: self.lb_tasks.insert("end", task) # print(self.tm.tasks) # 할 일 목록에 추가하고 DB 에 추가함 def add(self): # 작성한 거 추가하기 lb = self.task.get() self.tm.tasks.append(lb) # 현재 리스트 지우기 self.clear_listbox() # 리스트 띄우기 for task in self.tm.tasks: self.lb_tasks.insert("end", task) # DB 에 값 보냄 self.tm.add_task(lb) # 할 일 목록 업데이트 def update(self): # 작성한 거 추가하기 lb = self.lb_tasks.get("active") if lb != self.task_selected.get(): past = self.lb_tasks.get("active") self.tm.tasks.remove(past) self.tm.tasks.append(self.task_selected.get()) # 현재 리스트 지우기 self.clear_listbox() # 리스트 띄우기 for task in self.tm.tasks: self.lb_tasks.insert("end", task) content = lb percent = self.percent.get() if percent == "": percent = 0 listnum = self.tm.get_listnum(content) print(content, " + ", percent, "+", listnum) self.tm.update_task(listnum, content, percent) # 리스트 박스에서 제거하고 DB 에서도 제거하기 def delete(self): # 리스트 박스에서 선택된 항목 찾기 task = self.lb_tasks.get("active") if task in self.tm.tasks: # 지우기 self.tm.tasks.remove(task) # 리스트 보여주기 self.show_list() listnum = self.tm.get_listnum(task) # DB 에서 task 항목을 지움 self.tm.delete_task(listnum) # 리스트 박스에 보여지는 것을 다 지움 def clear_listbox(self): self.lb_tasks.delete(0, "end") # 우선순위 체크 def check_priority(self): return str(self.priority.get()) # 정렬하는 함수 def sort(self): print(type(self.tm.tasks)) self.tm.tasks.sort() self.show_list() # ClosetScreen 불러오는 함수 def open(self): ClosetScreen(count) # 할 일 완료했을 때 목록과 DB 에서 제거하고 count 를 세서 ClosetScreen 으로 보내는 함수 def closet(self): select = self.lb_tasks.get("active") result = self.tm.complete_task(select) count = self.tm.get_count() # 현재 리스트 지우기 self.clear_listbox() # 리스트 띄우기 for task in self.tm.tasks: self.lb_tasks.insert("end", task) print(self.tm.tasks) if result == 1: # count 값을 넘김 c = ClosetScreen(count) c.update_closet()