Project : ToDoList
준비물 : Python, Visual Studio Code
Python과 Visual Studio Code를 이용하여 Todolist 를 만들어보자.
chatgpt에게 모르는 것들을 물어가면 완성한 코드를 먼저 보자.
import tkinter as tk
from tkinter import messagebox
from datetime import datetime
class TodoApp:
def __init__(self, root):
self.root = root
self.root.title("Todo List App")
# Header labels
self.header_frame = tk.Frame(root)
self.header_frame.pack(padx=10, pady=5)
tk.Label(self.header_frame, text="No", width=10).pack(side="left")
tk.Label(self.header_frame, text="Todo", width=30).pack(side="left")
tk.Label(self.header_frame, text="Time", width=20).pack(side="left")
tk.Label(self.header_frame, text="Actions", width=10).pack(side="left")
# Main frame for todo items
self.main_frame = tk.Frame(root)
self.main_frame.pack(padx=10, pady=5)
self.todos = []
self.entry = tk.Entry(root, width=60)
self.entry.pack(pady=5)
self.entry.bind("<Return>", self.add_todo)
self.add_button = tk.Button(root, text="Add Todo", command=self.add_todo)
self.add_button.pack(pady=5)
def add_todo(self, event=None):
todo = self.entry.get()
if todo:
current_time = datetime.now().strftime("%m/%d %H:%M")
todo_frame = tk.Frame(self.main_frame)
todo_frame.pack(anchor="w")
tk.Label(todo_frame, text=str(len(self.todos) + 1), width=10).pack(side="left")
tk.Label(todo_frame, text=todo, width=30).pack(side="left")
tk.Label(todo_frame, text=current_time, width=20).pack(side="left")
delete_button = tk.Button(todo_frame, text="Delete", command=lambda: self.delete_todo(todo_frame))
delete_button.pack(side="left")
self.todos.append((todo_frame, todo, current_time))
self.entry.delete(0, "end")
def delete_todo(self, todo_frame):
todo_frame.destroy()
self.todos.remove(todo_frame)
if __name__ == "__main__":
root = tk.Tk()
app = TodoApp(root)
root.mainloop()
코드를 실행하면 ToDoList 프로그램 창이 열린다.
add todo 버튼 위에 글자를 적는 곳에 일정을 적으면,
번호 / 입력일정 / 입력시간 / 삭제버튼 순으로 생성이 된다.
여러 일정을 추가할 수가 있으면 일정을 완료했을 경우 Delete 버튼을 이용하여 삭제도 가능하다.
간단하게 만들수 있으며, 추가적인 기능을 구현을 해보고,
해당 코드를 암기하고 설명 할 수 있을 때까지 반복 작성 하여 내것으로 만들어 보자.
Project_ToDoList 끝
Code : https://github.com/themeg87/Python/tree/main/Project_ToDo
'code > Python' 카테고리의 다른 글
Python으로 Youtube_Downloader만들기 (0) | 2024.01.06 |
---|