✅ إضافة نوافذ منبثقة (Messagebox)
في هذا الدرس سنتعلم كيفية إنشاء نوافذ منبثقة (مثل: رسائل التحذير أو التأكيد أو المعلومات) باستخدام tkinter.messagebox.
🧩 ما هي نوافذ Messagebox؟
هي نوافذ صغيرة تظهر على الشاشة لتنبيه المستخدم أو إظهار رسالة مهمة. مثلًا عند الضغط على "حذف"، تظهر نافذة تسألك: هل أنت متأكد؟
🛠️ مثال توضيحي:
import tkinter as tk
from tkinter import messagebox
# إنشاء نافذة التطبيق
root = tk.Tk()
root.title("نافذة منبثقة - Messagebox")
root.geometry("300x200")
# دالة لإظهار رسالة معلومات
def show_info():
messagebox.showinfo("معلومة", "تمت العملية بنجاح!")
# دالة لإظهار رسالة تحذير
def show_warning():
messagebox.showwarning("تحذير", "هل أنت متأكد من المتابعة؟")
# دالة لإظهار رسالة خطأ
def show_error():
messagebox.showerror("خطأ", "حدث خطأ أثناء تنفيذ العملية.")
# دالة لإظهار رسالة تأكيد
def ask_confirmation():
response = messagebox.askyesno("تأكيد", "هل تريد حذف الملف؟")
if response:
messagebox.showinfo("تم", "تم الحذف بنجاح.")
else:
messagebox.showinfo("تم", "تم إلغاء الحذف.")
# أزرار لكل نوع من النوافذ
tk.Button(root, text="معلومة", command=show_info).pack(pady=5)
tk.Button(root, text="تحذير", command=show_warning).pack(pady=5)
tk.Button(root, text="خطأ", command=show_error).pack(pady=5)
tk.Button(root, text="تأكيد", command=ask_confirmation).pack(pady=5)
# تشغيل التطبيق
root.mainloop()
🧠 ملخص:
| الوظيفة | النتيجة |
|---|---|
showinfo() |
نافذة معلومات |
showwarning() |
نافذة تحذير |
showerror() |
نافذة خطأ |
askyesno() |
تأكيد بـ "نعم" أو "لا" (ترجع True/False) |
🎯 التمرين: نموذج تسجيل دخول بسيط
- أنشئ نافذة فيها:
- حقل لإدخال اسم المستخدم.
- حقل لإدخال كلمة المرور.
- زر لتسجيل الدخول.
- عند الضغط على الزر:
- إذا كانت البيانات صحيحة، تظهر رسالة "تم تسجيل الدخول بنجاح".
- إذا كانت خاطئة، تظهر رسالة خطأ "اسم المستخدم أو كلمة المرور غير صحيحة".
✅ الحل الكامل:
import tkinter as tk
from tkinter import messagebox
# إنشاء النافذة
root = tk.Tk()
root.title("نموذج تسجيل دخول")
root.geometry("300x200")
# بيانات الدخول الصحيحة
correct_username = "tamer"
correct_password = "1234"
# الحقول
tk.Label(root, text="اسم المستخدم:").pack(pady=5)
entry_username = tk.Entry(root)
entry_username.pack()
tk.Label(root, text="كلمة المرور:").pack(pady=5)
entry_password = tk.Entry(root, show="*")
entry_password.pack()
# دالة التحقق من البيانات
def login():
username = entry_username.get()
password = entry_password.get()
if username == correct_username and password == correct_password:
messagebox.showinfo("نجاح", "تم تسجيل الدخول بنجاح!")
else:
messagebox.showerror("خطأ", "اسم المستخدم أو كلمة المرور غير صحيحة.")
# زر الدخول
tk.Button(root, text="تسجيل الدخول", command=login).pack(pady=15)
# تشغيل التطبيق
root.mainloop()
✅ ملاحظات:
- استخدمنا
messagebox.showinfo()للنجاح. - واستخدمنا
messagebox.showerror()في حالة الفشل. - يمكنك توسيع التمرين لاحقًا لتسجيل مستخدمين جدد أو إضافة قاعدة بيانات.

