پایتون, مقالات

آموزش ساخت To Do List با پایتون + Tkinter و SQLite

پروژه کامل پایتون — نمونه سوال عملی فنی و حرفه‌ای

آموزش ساخت To Do List با پایتون Tkinter + SQLite — سورس کامل قابل کپی

دنبال یک پروژه پایتون کاربردی هستی که هم برای نمونه سوال عملی فنی و حرفه‌ای مناسب باشه و هم بتونی توی رزومه‌ت بذاری؟ این مقاله دقیقاً همون چیزیه که لازم داری. با هم قدم‌به‌قدم یک برنامه To Do List کامل با Python، Tkinter و SQLite3 می‌سازیم. سورس کد کامل و قابل کپی آماده‌ست.

۱۰۰٪ کاربردی پروژه واقعی بازار کار
مناسب فنی و حرفه‌ای نمونه سوال عملی
سورس کامل کپی با یک کلیک
🐍
پروژه To Do List با پایتون چیست و چرا برای فنی و حرفه‌ای مهم است؟

پروژه To Do List با پایتون (Tkinter + SQLite) یکی از رایج‌ترین نمونه سوالات عملی فنی و حرفه‌ای در رشته برنامه‌نویسی است. این پروژه ترکیبی از رابط گرافیکی (GUI)، دیتابیس محلی (SQLite) و عملیات CRUD را آموزش می‌دهد.

مقدمه

پروژه To Do List با پایتون — از صفر تا اجرا

پایتون (Python) امروز یکی از محبوب‌ترین زبان‌های برنامه‌نویسی دنیاست. از هوش مصنوعی و تحلیل داده تا طراحی نرم‌افزارهای دسکتاپ، همه جا پای پایتون در میونه. یکی از بهترین راه‌ها برای یادگیری پایتون، ساختن پروژه‌های واقعی است — نه فقط حل تمرین‌های تئوری.

در این مقاله، با هم یک برنامه To Do List (لیست کارها) می‌سازیم که:

  • ✅ با Tkinter رابط گرافیکی داره
  • ✅ با SQLite اطلاعات رو ذخیره می‌کنه
  • ✅ می‌تونه کار اضافه کنه، حذف کنه، وضعیتش رو تغییر بده
  • ✅ فیلتر «انجام شده / انجام نشده» داره
  • ✅ کامنت‌گذاری شده و برای امتحان عملی مناسبه
💡 نکته مهم برای فنی و حرفه‌ای: سازمان فنی و حرفه‌ای در آزمون عملی پایتون معمولاً از هنرجو می‌خواد یک برنامه با Tkinter + دیتابیس بسازه. این پروژه دقیقاً همون الگوییه که در آزمون‌ها استفاده می‌شه.
چرا این پروژه؟

چرا پروژه To Do List برای فنی و حرفه‌ای و رزومه حیاتیه؟

CRUD یادگیری عملیات اصلی دیتابیس
GUI ساخت رابط کاربری حرفه‌ای
SQL کار با دستورات SQL
۱۰۰٪ قابل استفاده در رزومه
۱

نمونه سوال عملی

این پروژه یکی از پرتکرارترین سوالات آزمون عملی پایتون در آموزشگاه‌های فنی و حرفه‌ای تبریز و سراسر کشوره.

۲

ترکیب Tkinter + SQLite

یاد می‌گیری چطور یک برنامه دسکتاپ واقعی بسازی که اطلاعات رو توی دیتابیس ذخیره کنه و بعداً بازخونی کنه.

۳

مناسب رزومه

این پروژه رو می‌تونی توی گیت‌هاب بذاری و به‌عنوان نمونه کار برای استخدام معرفی کنی. کارفرماها عاشق پروژه‌های عملی‌ان.

پیش‌نیازها

ابزارهای موردنیاز برای اجرای پروژه

🐍

Python 3.x

نسخه ۳.۷ به بالا. از سایت python.org دانلودش کن.

🖼️

Tkinter

به‌صورت پیش‌فرض همراه پایتون نصب می‌شه. نیازی به نصب جداگانه نیست.

🗄️

SQLite3

ماژول sqlite3 هم به‌صورت داخلی در پایتون وجود داره.

💻

یک ادیتور

VS Code، PyCharm یا حتی IDLE خود پایتون کافیه.

✅ خبر خوب: هیچ کتابخانه‌ای نیاز به نصب جداگانه نداره! Tkinter و SQLite هر دو در پایتون استاندارد وجود دارن.
پیش‌نمایش

خروجی نهایی برنامه To Do List

برنامه‌ای که در انتهای این مقاله می‌سازی، دقیقاً به این شکل کار می‌کنه:

خروجی برنامه To Do List با پایتون، Tkinter و SQLite - آموزشگاه راهکار تبریز

📸 خروجی برنامه To Do List — ساخته‌شده با Python + Tkinter + SQLite

همون‌طور که می‌بینی، برنامه شامل این بخش‌هاست:

  • 📅 فیلد تاریخ برای ثبت زمان کار
  • 📝 فیلد عنوان کار برای توضیح تسک
  • 📋 لیست‌باکس برای نمایش همه کارها
  • 🔽 کمبوباکس فیلتر (همه / انجام شده / انجام نشده)
  • ➕ دکمه افزودن
  • 🗑️ دکمه حذف
  • ✅ دکمه تغییر وضعیت
  • 🚪 دکمه خروج
سورس کامل

سورس کد کامل پروژه To Do List (قابل کپی)

کد زیر رو کامل کپی کن، توی یک فایل با پسوند todo.py ذخیره کن و اجراش کن. همه چیز آماده‌ست!

todo.py — Python 3
from tkinter import *
from tkinter import messagebox
from tkinter import ttk
import sqlite3

# اتصال به دیتابیس (اگر وجود نداشته باشد ساخته می‌شود)
conn = sqlite3.connect('todo.db')
curs = conn.cursor()

# ساخت جدول در صورت عدم وجود
curs.execute('''CREATE TABLE IF NOT EXISTS todolist (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    tarikh TEXT,
    onvan TEXT,
    vazyat TEXT
)''')
conn.commit()

# تابع افزودن کار جدید
def add_task():
    t = e1.get()
    o = e2.get()
    if t == '' or o == '':
        messagebox.showwarning('توجه', 'لطفا تاریخ و عنوان کار را وارد کنید')
        return
    curs.execute('INSERT INTO todolist (tarikh, onvan, vazyat) VALUES (?, ?, ?)',
                 (t, o, '❌'))
    conn.commit()
    e1.delete(0, END)
    e2.delete(0, END)
    e1.focus_set()
    show()

# تابع نمایش لیست کارها با فیلتر
def show():
    la1.delete(0, END)
    selected_filter = combo_filter.get()

    if selected_filter == 'نمایش همه':
        curs.execute('SELECT * FROM todolist')
    elif selected_filter == 'انجام شده':
        curs.execute('SELECT * FROM todolist WHERE vazyat = "✔"')
    elif selected_filter == 'انجام نشده':
        curs.execute('SELECT * FROM todolist WHERE vazyat = "❌"')
    else:
        curs.execute('SELECT * FROM todolist')

    info = curs.fetchall()
    for i in info:
        la1.insert(END, i)

# تابع انتخاب آیتم از لیست
def onselect(event):
    satrno = la1.curselection()
    if satrno:
        matn = la1.get(satrno)
        e1.delete(0, END)
        e2.delete(0, END)
        e1.insert(0, matn[1])
        e2.insert(0, matn[2])
        global kod, vaz
        kod = matn[0]
        vaz = matn[3]

# تابع تغییر وضعیت کار
def change():
    if 'kod' in globals() and 'vaz' in globals():
        if vaz == '❌':
            curs.execute(f'UPDATE todolist SET vazyat = "✔" WHERE id = {kod}')
        else:
            curs.execute(f'UPDATE todolist SET vazyat = "❌" WHERE id = {kod}')
        conn.commit()
        show()
    else:
        messagebox.showwarning('توجه', 'لطفا ابتدا یک مورد را انتخاب کنید')

# تابع حذف کار
def hazf():
    if 'kod' in globals():
        javab = messagebox.askyesno('توجه', 'آیا مطمئن هستید حذف شود؟')
        if javab:
            curs.execute(f'DELETE FROM todolist WHERE id = {kod}')
            conn.commit()
            e1.delete(0, END)
            e2.delete(0, END)
            e1.focus_set()
            show()
    else:
        messagebox.showwarning('توجه', 'لطفا ابتدا یک مورد را انتخاب کنید')

# ساخت پنجره اصلی
win = Tk()
win.title('برنامه مدیریت کارها')
win.geometry('400x350')

# فیلد تاریخ
l1 = Label(win, text='تاریخ')
l1.place(x=50, y=20)
e1 = Entry(win)
e1.place(x=80, y=20)

# فیلد عنوان کار
l2 = Label(win, text='کار')
l2.place(x=50, y=50)
e2 = Entry(win)
e2.place(x=80, y=50)

# دکمه‌ها
b1 = Button(win, text='افزودن', command=add_task)
b1.place(x=280, y=100, width=100)
b2 = Button(win, text='حذف', command=hazf)
b2.place(x=280, y=140, width=100)
b3 = Button(win, text='تغییر وضعیت', command=change)
b3.place(x=280, y=180, width=100)
b4 = Button(win, text='خروج', command=win.destroy)
b4.place(x=280, y=220, width=100)

# لیست‌باکس نمایش کارها
la1 = Listbox(win)
la1.place(x=50, y=100, width=200)
la1.bind('<<ListboxSelect>>', onselect)

# کمبوباکس فیلتر
combo_filter = ttk.Combobox(win, values=['نمایش همه', 'انجام شده', 'انجام نشده'],
                            state='readonly')
combo_filter.place(x=50, y=280, width=200)
combo_filter.current(0)
combo_filter.bind('<<ComboboxSelected>>', lambda event: show())

# نمایش اولیه
show()

# اجرای برنامه
win.mainloop()
⚠️ نکته: اگر می‌خواهی برنامه سریع‌تر اجرا بشه، حتماً پایتون نسخه ۳.۷ به بالا نصب کن. Tkinter در لینوکس ممکنه نیاز به نصب جداگانه داشته باشه (sudo apt install python3-tk).
توضیح خط‌به‌خط

توضیح بخش‌های اصلی کد (برای امتحان عملی)

در آزمون عملی معمولاً ازت می‌پرسن هر بخش چه کاری انجام می‌ده. این خلاصه رو حفظ کن:

۱

اتصال به دیتابیس

دستور sqlite3.connect('todo.db') یک فایل دیتابیس به نام todo.db می‌سازه. اگر وجود داشته باشه، بهش وصل می‌شه. جدول todolist با ۴ ستون (id, tarikh, onvan, vazyat) ساخته می‌شه.

۲

تابع add_task() — افزودن کار

مقدار فیلدهای تاریخ و عنوان رو می‌گیره، با دستور INSERT در دیتابیس ذخیره می‌کنه، و پس از پاک کردن فیلدها، لیست رو دوباره نمایش می‌ده.

۳

تابع show() — نمایش لیست

بر اساس فیلتر انتخاب‌شده در Combobox، دستور SELECT مناسب رو اجرا می‌کنه و نتایج رو داخل Listbox نمایش می‌ده.

۴

تابع onselect() — انتخاب آیتم

وقتی روی یک ردیف از لیست کلیک می‌کنی، اطلاعاتش رو از لیست می‌خونه، در فیلدهای ورودی می‌ریزه و id و وضعیت رو در متغیرهای global ذخیره می‌کنه.

۵

تابع change() — تغییر وضعیت

اگر کار انجام‌نشده (❌) باشه، به انجام‌شده (✔) تغییر می‌کنه و برعکس. با دستور UPDATE دیتابیس آپدیت می‌شه.

۶

تابع hazf() — حذف کار

اول با messagebox تأیید می‌گیره، بعد با دستور DELETE رکورد رو از دیتابیس پاک می‌کنه.

۷

ساخت رابط گرافیکی

با Tk() پنجره اصلی ساخته می‌شه، سپس با Label، Entry، Button، Listbox و Combobox اجزای رابط ساخته و با متد place() چیده می‌شن.

🎯 سوال رایج آزمون: «تفاوت متدهای grid()، pack() و place() در Tkinter چیه؟» — پاسخ: grid() چیدمان جدولی، pack() چیدمان ترتیبی و place() چیدمان مختصاتی (با x و y) انجام می‌ده. در این پروژه از place() استفاده شده که کنترل دقیق‌تری می‌ده.
اجرا

نحوه اجرای پروژه در ۴ قدم ساده

۱

پایتون را نصب کن

از سایت python.org آخرین نسخه پایتون ۳ رو دانلود و نصب کن. حین نصب گزینه Add Python to PATH رو حتماً تیک بزن.

۲

فایل را ذخیره کن

کد بالا رو کپی کن، توی یک فایل به نام todo.py ذخیره کن. دقت کن پسوند فایل .py باشه، نه .py.txt.

۳

اجرا در ترمینال

ترمینال (یا CMD) رو باز کن، به مسیر فایل برو و دستور python todo.py رو بزن. برنامه اجرا می‌شه.

۴

شروع استفاده

تاریخ و عنوان کار رو وارد کن، دکمه افزودن رو بزن. کارها در دیتابیس ذخیره می‌شن و دفعه بعد هم قابل مشاهده‌ان.

✅ تیپ حرفه‌ای: اگر خواستی پروژه رو توسعه بدی، پیشنهاد می‌کنم این قابلیت‌ها رو بهش اضافه کنی: جستجو در کارها، نمایش تعداد کل، دسته‌بندی رنگی، و یادآور تاریخ. اینا سوالات توسعه‌ای آزمون‌های عملی هستن.
چرا آموزشگاه راهکار؟

مزایای یادگیری پایتون در آموزشگاه کامپیوتر راهکار تبریز

اگر می‌خواهی پایتون را اصولی، پروژه‌محور و با مدرک معتبر یاد بگیری، آموزشگاه راهکار بهترین انتخاب در تبریز است:

📍 دسترسی آسان در مرکز شهر تبریز، خیابان شریعتی (شهناز)، نرسیده به تقاطع ۱۷ شهریور
🎥 ویدیوی جلسات برای مرور تمام جلسات ضبط می‌شوند و در اختیار هنرجویان قرار می‌گیرند
👨‍🏫 اساتید مجرب با سال‌ها تجربه پروژه‌های واقعی و آشنایی با نیاز بازار کار
📜 مدرک فنی و حرفه‌ای قابل ترجمه رسمی و معتبر برای استخدام در شرکت‌ها
💡 آموزش پروژه‌محور در طول دوره روی پروژه‌های واقعی مثل To Do List کار می‌کنی
🤝 پشتیبانی دائمی حتی پس از پایان دوره، اساتید کنار شما هستند
💳 پرداخت اقساطی شرایط ویژه همشهریان تبریزی برای پرداخت شهریه
🚀 آمادگی برای فنی و حرفه‌ای تمرین دقیق نمونه سوالات عملی آزمون پایتون
شروع یادگیری پایتون

آماده‌ای پایتون رو حرفه‌ای یاد بگیری؟

این مقاله فقط یک پروژه بود. برای تبدیل شدن به یک برنامه‌نویس پایتون حرفه‌ای و قبولی در آزمون فنی و حرفه‌ای، باید مسیر اصولی رو طی کنی. دوره پایتون آموزشگاه راهکار تبریز دقیقاً همون مسیریه که لازم داری.

نام دوره آموزش جامع پایتون — از صفر تا پروژه‌های حرفه‌ای
سرفصل‌ها مبانی پایتون، Tkinter، SQLite، فایل، شیءگرایی، پروژه‌های عملی
سطح از مبتدی تا پیشرفته
پیش‌نیاز ندارد — از صفر شروع می‌شود
مدرک رسمی فنی و حرفه‌ای، قابل ترجمه
پشتیبانی دائمی، حتی پس از پایان دوره
شماره تماس 041-35574231
آدرس تبریز، خیابان شریعتی (شهناز)، نرسیده به تقاطع ۱۷ شهریور
سوالات متداول

سوالات متداول درباره پروژه To Do List و پایتون

آیا برای ساخت To Do List باید برنامه‌نویسی بلد باشم؟

برای شروع، آشنایی مقدماتی با پایتون کافیه. در این مقاله کد کامل و کامنت‌گذاری شده رو در اختیارت گذاشتیم، پس حتی اگه تازه‌کار هم باشی می‌تونی اجراش کنی و یاد بگیری.

چه تفاوتی بین Tkinter و PyQt برای ساخت برنامه دسکتاپ وجود داره؟

Tkinter ساده‌تره و به‌صورت پیش‌فرض در پایتون نصبه. PyQt ظاهر مدرن‌تری داره ولی نیاز به نصب جداگانه و یادگیری بیشتری داره. برای شروع و آزمون فنی و حرفه‌ای، Tkinter انتخاب بهتری است.

آیا این پروژه برای نمونه سوال عملی فنی و حرفه‌ای مناسبه؟

بله، دقیقاً. ترکیب Tkinter و SQLite یکی از رایج‌ترین ساختارهای آزمون عملی پایتون در سازمان فنی و حرفه‌ای است. تسلط بر این پروژه بهت کمک می‌کنه در آزمون موفق بشی.

چرا از SQLite استفاده کردیم و نه MySQL؟

SQLite نیازی به نصب سرور جداگانه نداره، در پایتون به‌صورت داخلی وجود داره و برای برنامه‌های دسکتاپ سبک انتخاب ایده‌آلیه. MySQL بیشتر برای برنامه‌های وب و شبکه استفاده می‌شه.

آیا می‌تونم این پروژه رو توی گیت‌هاب بذارم؟

قطعاً! این کار به شدت توصیه می‌شه. کارفرماها نمونه‌کارهای عملی رو خیلی جدی می‌گیرن.

چطور می‌تونم پروژه رو توسعه بدم؟

اضافه کردن جستجو، اولویت‌بندی کارها، دسته‌بندی رنگی، یادآور تاریخ، خروجی گرفتن به CSV. هر کدوم می‌تونه پروژه رو حرفه‌ای‌تر کنه.

دوره پایتون آموزشگاه راهکار چقدر طول می‌کشه؟

طول دوره بستگی به سطح و اهداف شما داره. برای اطلاع دقیق، با شماره 041-35574231 تماس بگیرید تا مشاوره رایگان دریافت کنید.

آیا در تبریز برای پایتون کار هست؟

بله. شرکت‌های نرم‌افزاری، استارتاپ‌ها و آموزشگاه‌های متعددی در تبریز به دنبال برنامه‌نویس پایتون هستن.

برای ثبت‌نام در دوره پایتون با چه شماره‌ای تماس بگیرم؟

برای مشاوره رایگان و ثبت‌نام، با شماره 041-35574231 تماس بگیرید.

همین امروز شروع کن

پروژه ساختی — حالا وقت یادگیری حرفه‌ایه!

در دوره جامع پایتون آموزشگاه راهکار تبریز ثبت‌نام کن، از صفر تا پروژه‌های حرفه‌ای پیش برو، مدرک فنی و حرفه‌ای دریافت کن و وارد بازار کار پرتقاضای برنامه‌نویسی شو.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *