حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش پایتون پروژه‌محور؛ قسمت سوم: شیءگرایی تا ساخت برنامه

آموزش Tkinter؛ ساخت پنجره و دکمه با پایتون

آموزش threading و ساخت رابط گرافیکی با Tkinter · 0٪

کد کامل برای اجرای محلی در فایل mini_gui.py؛ پنجرهٔ Tkinter در مرورگر این دوره باز نمی‌شه. اول با py -m tkinter وجود Tk رو بررسی کن؛ این فرمان باید پنجرهٔ آزمایشی نشون بده. اگه خطای نصب دیدی، نصب پایتون و بخش Tcl/Tk سیستم خودت رو بررسی کن؛ pip install tkinter راه عمومی نصب Tk نیست.

در برنامهٔ گرافیکی یک حلقهٔ رویداد یا event loop منتظر کلیک و ورود متن می‌مونه. mainloop() اون رو شروع می‌کنه. در command=add_task خود تابع رو می‌دیم، نه نتیجهٔ add_task(). بعداً با کلیک دکمه، تابع callback اجرا می‌شه.

import tkinter as tk
from tkinter import messagebox

def clean_title(text):
    title = text.strip()
    if not title:
        raise ValueError("عنوان را وارد کن")
    return title

def add_task():
    try:
        title = clean_title(entry.get())
    except ValueError as error:
        messagebox.showinfo("عنوان لازم است", str(error))
        return
    items.insert(tk.END, title)
    entry.delete(0, tk.END)

root = tk.Tk()
root.title("کارهای من")
entry = tk.Entry(root, width=35)
entry.pack(padx=12, pady=8)
tk.Button(root, text="افزودن", command=add_task).pack()
items = tk.Listbox(root, width=45)
items.pack(padx=12, pady=8)
root.mainloop()

آزمایش دستی: عنوان فارسی اضافه کن، عنوان فقط‌فاصله رو امتحان کن و دو عنوان پشت سر هم وارد کن. این نمونه در این مرحله ذخیرهٔ دائمی نداره. تابع clean_title منطق مستقل هست و می‌شه اون رو در مرورگر هم بررسی کرد؛ اجزای پنجره، مثل دکمه و کادر متن، روی کامپیوتر اجرا می‌شن. به این اجزا ویجت می‌گن. callback طولانی، مثل انتظار شبکه، پنجره رو متوقف می‌کنه. برای کار پس‌زمینه، ویجت‌ها رو مستقیم از ترد کارگر تغییر نده؛ در مسیر پیشرفته از صف و root.after برای بازگشت نتیجه به ترد رابط استفاده می‌کنیم.

فعالیت شما

با Tkinter یک پنجره بساز که کادر متن، دکمه و لیست داشته باشه و به کلیک جواب بده.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

فعالیت‌های این بخش به اشتراک فعال نیاز دارند. تهیهٔ اشتراک

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید: