🎯 الهدف: أن تتعلم كيف تستخدم الرسائل المنبثقة (مثل: تحذير، خطأ، معلومات، سؤال) باستخدام tkinter.messagebox.
✅ أنواع الرسائل المنبثقة:
Tkinter توفر عدة أنواع من الرسائل مثل:
showinfo: لعرض معلومات.showwarning: لتحذير المستخدم.showerror: لعرض خطأ.askquestion: لطرح سؤال بنعم/لا.askyesno: لإجابة بنعم أو لا.askokcancel: لاختيار موافق أو إلغاء.
✅ الكود الكامل:
import tkinter as tk
from tkinter import messagebox
# إنشاء النافذة
window = tk.Tk()
window.title("رسائل منبثقة")
window.geometry("300x300")
# === دوال لكل نوع من الرسائل ===
def show_info():
messagebox.showinfo("معلومة", "تم حفظ البيانات بنجاح!")
def show_warning():
messagebox.showwarning("تحذير", "هل أنت متأكد من حذف هذا العنصر؟")
def show_error():
messagebox.showerror("خطأ", "حدث خطأ أثناء الحفظ!")
def ask_yes_no():
result = messagebox.askyesno("سؤال", "هل ترغب في المتابعة؟")
print("النتيجة:", result)
# === الأزرار ===
tk.Button(window, text="عرض معلومة", command=show_info).pack(pady=5)
tk.Button(window, text="عرض تحذير", command=show_warning).pack(pady=5)
tk.Button(window, text="عرض خطأ", command=show_error).pack(pady=5)
tk.Button(window, text="سؤال بنعم أو لا", command=ask_yes_no).pack(pady=5)
# تشغيل التطبيق
window.mainloop()
🧠 شرح سريع:
| العنصر | الوظيفة |
|---|---|
messagebox.showinfo() |
عرض نافذة تحتوي على رسالة معلومات |
messagebox.showwarning() |
عرض نافذة تحذيرية |
messagebox.askyesno() |
نافذة بها زر "نعم" و "لا" وتُعيد True/False |
✅ حالات استخدام عملية:
| الحالة | الرسالة المناسبة |
|---|---|
| تنبيه المستخدم للحذف | showwarning() |
| إعلام المستخدم بالحفظ | showinfo() |
| حدوث خطأ في الإدخال | showerror() |
| سؤال قبل تنفيذ إجراء حساس | askyesno() أو askokcancel() |
✅ التمرين: نموذج تسجيل دخول باستخدام رسائل منبثقة
🎯 المطلوب:
إنشاء واجهة تحتوي على:
- حقلي إدخال: اسم المستخدم وكلمة المرور.
- زر بعنوان "تسجيل الدخول".
- عند الضغط على الزر:
- إذا كانت الحقول فارغة: تظهر رسالة تحذير.
- إذا كانت كلمة المرور غير صحيحة: تظهر رسالة خطأ.
- إذا كان كل شيء صحيحًا: تظهر رسالة معلومة بالنجاح.
✅ الكود الكامل مع الحل:
import tkinter as tk
from tkinter import messagebox
# إعداد النافذة
window = tk.Tk()
window.title("تسجيل الدخول")
window.geometry("300x250")
# ==== عناصر النموذج ====
tk.Label(window, text="اسم المستخدم:").pack(pady=5)
entry_user = tk.Entry(window)
entry_user.pack()
tk.Label(window, text="كلمة المرور:").pack(pady=5)
entry_pass = tk.Entry(window, show="*")
entry_pass.pack()
# ==== دالة التحقق ====
def login():
username = entry_user.get()
password = entry_pass.get()
if username == "" or password == "":
messagebox.showwarning("تحذير", "يرجى ملء جميع الحقول!")
elif password != "1234":
messagebox.showerror("خطأ", "كلمة المرور غير صحيحة!")
else:
messagebox.showinfo("نجاح", f"مرحبًا يا {username}، تم تسجيل الدخول بنجاح!")
# ==== زر الدخول ====
tk.Button(window, text="تسجيل الدخول", command=login).pack(pady=20)
# تشغيل التطبيق
window.mainloop()
✅ شرح سريع:
| الجزء | الوظيفة |
|---|---|
entry_user.get() |
يحصل على اسم المستخدم |
entry_pass.get() |
يحصل على كلمة المرور |
messagebox.showwarning() |
يظهر تحذير عند ترك الحقول فارغة |
messagebox.showerror() |
يظهر خطأ عند إدخال كلمة مرور خاطئة |
messagebox.showinfo() |
يظهر رسالة ترحيب عند نجاح تسجيل الدخول |
💡 نصيحة إضافية:
يمكنك لاحقًا ربط هذه الواجهة بقاعدة بيانات حقيقية لتسجيل الدخول الفعلي.

