🎯 الهدف: أن تتعلم كيفية:
- عرض رسائل تنبيه أو تأكيد للمستخدم.
- استخدام أنواع مختلفة من النوافذ المنبثقة مثل: معلومات، تحذير، خطأ، تأكيد (نعم/لا).
✅ ما هي messagebox؟
هي وحدة في tkinter تعرض نوافذ صغيرة منبثقة لمراسلة المستخدم مثل:
- تنبيهات
- تأكيدات
- أخطاء
- رسائل معلومات
✅ أنواع النوافذ المتاحة:
| الدالة | الاستخدام |
|---|---|
messagebox.showinfo() |
لعرض رسالة معلومات |
messagebox.showwarning() |
لعرض رسالة تحذير |
messagebox.showerror() |
لعرض رسالة خطأ |
messagebox.askquestion() |
يسأل المستخدم (نعم/لا) ويُعيد "yes" أو "no" |
messagebox.askyesno() |
يعيد True أو False حسب الاختيار |
messagebox.askokcancel() |
يعيد True أو False |
✅ مثال عملي:
import tkinter as tk
from tkinter import messagebox
def show_info():
messagebox.showinfo("معلومة", "تم تنفيذ العملية بنجاح!")
def show_warning():
messagebox.showwarning("تحذير", "هل أنت متأكد من هذا الإجراء؟")
def show_error():
messagebox.showerror("خطأ", "حدث خطأ أثناء العملية!")
def ask_confirmation():
result = messagebox.askyesno("تأكيد", "هل تريد المتابعة؟")
if result:
messagebox.showinfo("موافقة", "تم المتابعة.")
else:
messagebox.showinfo("إلغاء", "تم الإلغاء.")
# إنشاء النافذة
window = tk.Tk()
window.title("رسائل منبثقة")
window.geometry("300x300")
# أزرار الاختبار
tk.Button(window, text="عرض معلومة", command=show_info).pack(pady=10)
tk.Button(window, text="عرض تحذير", command=show_warning).pack(pady=10)
tk.Button(window, text="عرض خطأ", command=show_error).pack(pady=10)
tk.Button(window, text="طلب تأكيد", command=ask_confirmation).pack(pady=10)
window.mainloop()
🧠 ملاحظات:
- هذه الرسائل مهمة جدًا في التطبيقات الواقعية.
- يمكن استخدامها قبل حذف بيانات أو الخروج من التطبيق أو لإعلام المستخدم بنتيجة معينة.
✅ التمرين: نموذج تسجيل دخول بسيط مع رسالة تنبيه
🎯 المطلوب:
- بناء واجهة فيها:
- حقل لإدخال اسم المستخدم.
- حقل لإدخال كلمة المرور.
- زر "تسجيل الدخول".
- عند الضغط على الزر:
- إذا كانت البيانات صحيحة → عرض رسالة "تم تسجيل الدخول بنجاح".
- إذا كانت البيانات خاطئة → عرض رسالة خطأ.
✅ الحل:
import tkinter as tk
from tkinter import messagebox
# الدالة للتحقق من البيانات
def login():
username = user_entry.get()
password = pass_entry.get()
if username == "admin" and password == "1234":
messagebox.showinfo("نجاح", "تم تسجيل الدخول بنجاح ✅")
else:
messagebox.showerror("خطأ", "اسم المستخدم أو كلمة المرور غير صحيحة ❌")
# نافذة التطبيق
window = tk.Tk()
window.title("نموذج تسجيل دخول")
window.geometry("300x200")
# عناصر الإدخال
tk.Label(window, text="اسم المستخدم:").pack(pady=5)
user_entry = tk.Entry(window)
user_entry.pack()
tk.Label(window, text="كلمة المرور:").pack(pady=5)
pass_entry = tk.Entry(window, show="*")
pass_entry.pack()
# زر تسجيل الدخول
login_btn = tk.Button(window, text="تسجيل الدخول", command=login)
login_btn.pack(pady=15)
window.mainloop()
✅ المخرجات:
-
عند إدخال:
- اسم المستخدم:
admin - كلمة المرور:
1234
ستظهر رسالة نجاح ✅.
- اسم المستخدم:
-
غير ذلك → رسالة خطأ ❌.
🧠 نصائح إضافية:
- يمكنك في الدروس القادمة إضافة زر "إغلاق" أو "مسح".
- يمكنك حفظ بيانات المستخدمين في ملف لاحقًا أو قاعدة بيانات.

