🎯 سنتعلم اليوم كيفية استخدام نوافذ التنبيه (Message Boxes) في Tkinter لعرض رسائل منبثقة مثل:
- رسالة معلومات (Information)
- تحذير (Warning)
- خطأ (Error)
- سؤال (Yes/No)
🧱 ما هو MessageBox؟
عنصر ليس مرئيًا مباشرة، لكنه يستخدم لإظهار رسائل منبثقة للمستخدم عند الحاجة.
يتم استيراده من مكتبة tkinter.messagebox
.
📦 الصيغة العامة:
from tkinter import messagebox
messagebox.showinfo("العنوان", "الرسالة")
📌 أشهر أنواع الرسائل:
النوع | الوظيفة |
---|---|
showinfo() |
عرض رسالة معلومات |
showwarning() |
عرض رسالة تحذير |
showerror() |
عرض رسالة خطأ |
askquestion() |
سؤال المستخدم (نعم/لا) |
askyesno() |
سؤال المستخدم ويعيد True أو False |
✅ مثال عملي:
import tkinter as tk
from tkinter import messagebox
def عرض_معلومات():
messagebox.showinfo("معلومة", "هذا مثال على رسالة معلومات.")
def عرض_تحذير():
messagebox.showwarning("تحذير", "هل أنت متأكد من هذا الإجراء؟")
def عرض_خطأ():
messagebox.showerror("خطأ", "حدث خطأ أثناء تنفيذ العملية!")
def سؤال():
إجابة = messagebox.askyesno("تأكيد", "هل تريد الخروج؟")
if إجابة:
window.quit()
# النافذة
window = tk.Tk()
window.title("Messagebox مثال")
window.geometry("300x250")
# أزرار لعرض أنواع مختلفة من الرسائل
tk.Button(window, text="معلومة", command=عرض_معلومات).pack(pady=5)
tk.Button(window, text="تحذير", command=عرض_تحذير).pack(pady=5)
tk.Button(window, text="خطأ", command=عرض_خطأ).pack(pady=5)
tk.Button(window, text="سؤال (نعم/لا)", command=سؤال).pack(pady=5)
window.mainloop()
💡 ملاحظات سريعة:
الدالة | تستخدم لـ |
---|---|
showinfo() |
تنبيه المستخدم بمعلومة |
askyesno() |
الاستفسار منه وإعادة True/False |
messagebox.ask... |
دائمًا تُعيد قيمة يمكن استخدامها في شرط |
✅ التمرين: "تأكيد الخروج من التطبيق"
🎯 المطلوب:
- أنشئ نافذة بها زر مكتوب عليه: "خروج".
- عند الضغط على الزر، يظهر صندوق حوار يسأل المستخدم:
هل تريد الخروج من التطبيق؟ - إذا اختار "نعم"، يُغلق التطبيق.
إذا اختار "لا"، تبقى النافذة كما هي.
🧾 الحل الكامل:
import tkinter as tk
from tkinter import messagebox
def تأكيد_الخروج():
تأكيد = messagebox.askyesno("تأكيد الخروج", "هل أنت متأكد أنك تريد الخروج؟")
if تأكيد:
window.destroy()
# إنشاء النافذة
window = tk.Tk()
window.title("تطبيق تأكيد الخروج")
window.geometry("300x150")
# زر الخروج
زر = tk.Button(window, text="خروج", font=("Arial", 14), command=تأكيد_الخروج)
زر.pack(pady=40)
# تشغيل النافذة
window.mainloop()
💡 الشرح:
السطر | الوظيفة |
---|---|
messagebox.askyesno() |
يُظهر سؤالًا ويعيد True إذا اختار المستخدم "نعم" |
window.destroy() |
يُغلق التطبيق تمامًا |
command=... |
يربط الزر بدالة التأكيد |
✅ النتيجة:
عند الضغط على زر "خروج"، تظهر رسالة:
[هل أنت متأكد أنك تريد الخروج؟] [نعم] [لا]
- إذا اختار المستخدم "نعم" → يُغلق التطبيق.
- إذا اختار "لا" → لا يحدث شيء.
0 تعليقات