در این پروژه آموزشی، گامبهگام با هم یک اپلیکیشن دسکتاپ (GUI) با زبان Python و کتابخانه Tkinter طراحی میکنیم. هدف اصلی این پروژه، آموزش کاربردی طراحی رابط کاربری گرافیکی در پایتون و آشنایی با مفاهیم مدیریت وظایف، تعامل با کاربر، ذخیرهسازی اطلاعات و ساخت یک برنامه واقعی است.
آشنایی با مبانی زبان پایتون (توابع، لیستها، شرطها و حلقهها)
آشنایی مقدماتی با Tkinter (اختیاری ولی مفید)
🔧 نکته: نیازی به نصب Tkinter نیست چون بهصورت پیشفرض با پایتون همراه است.
ساخت یک اپلیکیشن To-Do List که امکانات زیر را داشته باشد:
اضافه کردن وظایف
نمایش لیست وظایف
حذف وظایف
ذخیره وظایف در فایل
بارگذاری وظایف از فایل
رابط کاربری تمیز و حرفهای
برای اینکه کد ما حرفهای، منظم و قابل توسعه باشد، از کلاسنویسی در پایتون استفاده میکنیم.
project/
│
├── todo_app.py # فایل اصلی برنامه
├── tasks.txt # فایل ذخیرهسازی وظایف
└── assets/ # (اختیاری) پوشه آیکون یا منابع گرافیکی
todo_app.pyimport tkinter as tkfrom tkinter import messagebox, filedialogimport os
class ToDoApp:def __init__(self, root):self.root = rootself.root.title("اپلیکیشن مدیریت وظایف")self.root.geometry("500x500")self.root.resizable(False, False)self.tasks = []self.create_widgets()self.load_tasks()
def create_widgets(self):self.entry = tk.Entry(self.root, font=("Arial", 14), width=30)self.entry.pack(pady=20)btn_frame = tk.Frame(self.root)btn_frame.pack()self.add_btn = tk.Button(btn_frame, text="افزودن", command=self.add_task, width=10)self.add_btn.grid(row=0, column=0, padx=5)self.delete_btn = tk.Button(btn_frame, text="حذف", command=self.delete_task, width=10)self.delete_btn.grid(row=0, column=1, padx=5)self.save_btn = tk.Button(btn_frame, text="ذخیره", command=self.save_tasks, width=10)self.save_btn.grid(row=0, column=2, padx=5)self.listbox = tk.Listbox(self.root, font=("Arial", 12), width=45, height=15)self.listbox.pack(pady=10)
def add_task(self):task = self.entry.get().strip()if task:self.tasks.append(task)self.update_listbox()self.entry.delete(0, tk.END)else:messagebox.showwarning("هشدار", "لطفاً یک وظیفه وارد کنید!")def delete_task(self):selected = self.listbox.curselection()if selected:index = selected[0]self.tasks.pop(index)self.update_listbox()else:messagebox.showwarning("هشدار", "هیچ وظیفهای انتخاب نشده!")def update_listbox(self):self.listbox.delete(0, tk.END)for i, task in enumerate(self.tasks, start=1):self.listbox.insert(tk.END, f"{i}. {task}")def save_tasks(self):with open("tasks.txt", "w", encoding="utf-8") as file:for task in self.tasks:file.write(task + "\n")messagebox.showinfo("ذخیره شد", "وظایف با موفقیت ذخیره شدند.")def load_tasks(self):if os.path.exists("tasks.txt"):with open("tasks.txt", "r", encoding="utf-8") as file:self.tasks = [line.strip() for line in file.readlines()]self.update_listbox()
if __name__ == "__main__":root = tk.Tk()app = ToDoApp(root)root.mainloop()
این پروژه نهتنها به شما کمک میکنه مفاهیم GUI در پایتون رو یاد بگیرید، بلکه با ساخت یک برنامه واقعی، احساس فوقالعادهای از خلق نرمافزار خواهید داشت.