نتعلم من هذا الدرس كيفية استخدام عنصر Checkbutton لإنشاء خيارات يمكن تحديدها أو إلغاء تحديدها (✅/⬜)، وهي مفيدة في:
- تحديد تفعيل/إيقاف ميزة.
- اختيار عدة عناصر من مجموعة.
- إعدادات المستخدم (مثل: تفعيل الوضع الليلي، الاشتراك بالنشرة...).
🧱 الصيغة الأساسية:
check = tk.Checkbutton(window, text="الخيار", variable=var)
text: النص الظاهر بجانب المربع.variable: متغير مرتبط بالحالة (يأخذ1عند التحديد، و0عند الإلغاء).onvalueوoffvalue: يمكن تخصيص القيم التي ترجع عند التحديد والإلغاء.
✅ مثال عملي:
import tkinter as tk
def عرض_الحالة():
if var.get() == 1:
label.config(text="✅ تم التحديد")
else:
label.config(text="❌ لم يتم التحديد")
# إنشاء النافذة
window = tk.Tk()
window.title("مثال على Checkbutton")
window.geometry("300x200")
# المتغير المرتبط بالحالة
var = tk.IntVar()
# إنشاء Checkbutton
check = tk.Checkbutton(window, text="تفعيل الخيار", variable=var, command=عرض_الحالة)
check.pack(pady=20)
# تسمية لعرض الحالة
label = tk.Label(window, text="❌ لم يتم التحديد")
label.pack()
window.mainloop()
📌 ملخص سريع:
| الخاصية | الاستخدام |
|---|---|
text |
عنوان خانة الاختيار |
variable |
متغير يخزن الحالة |
onvalue |
القيمة عند التحديد (افتراضي 1) |
offvalue |
القيمة عند الإلغاء (افتراضي 0) |
command |
يتم استدعاؤها عند تغيير الحالة |
✅ التمرين: "خيارات الاشتراك في الخدمات"
🎯 المطلوب:
- أنشئ نافذة تحتوي على ثلاث خانات اختيار:
- الاشتراك في النشرة البريدية 📩
- تفعيل التنبيهات 🔔
- تفعيل الوضع الليلي 🌙
- أضف زرًا مكتوبًا عليه "حفظ الإعدادات".
- عند الضغط على الزر، يتم طباعة الإعدادات المختارة في الطرفية.
🧾 الحل الكامل:
import tkinter as tk
# إنشاء النافذة
window = tk.Tk()
window.title("إعدادات المستخدم")
window.geometry("350x250")
# المتغيرات المرتبطة بخانات الاختيار
newsletter_var = tk.IntVar()
notifications_var = tk.IntVar()
darkmode_var = tk.IntVar()
# خانات الاختيار
tk.Checkbutton(window, text="📩 الاشتراك في النشرة البريدية", variable=newsletter_var).pack(anchor="w", padx=20)
tk.Checkbutton(window, text="🔔 تفعيل التنبيهات", variable=notifications_var).pack(anchor="w", padx=20)
tk.Checkbutton(window, text="🌙 تفعيل الوضع الليلي", variable=darkmode_var).pack(anchor="w", padx=20)
# دالة عند الضغط على الزر
def حفظ_الإعدادات():
print("الإعدادات المختارة:")
if newsletter_var.get():
print("- مشترك في النشرة البريدية")
if notifications_var.get():
print("- التنبيهات مفعلة")
if darkmode_var.get():
print("- الوضع الليلي مفعّل")
if not (newsletter_var.get() or notifications_var.get() or darkmode_var.get()):
print("- لم يتم اختيار أي إعداد.")
# زر الحفظ
tk.Button(window, text="💾 حفظ الإعدادات", command=حفظ_الإعدادات).pack(pady=20)
# تشغيل التطبيق
window.mainloop()
💡 ما تتعلمه من هذا التمرين:
| العنصر | الغرض |
|---|---|
Checkbutton |
عرض اختيارات قابلة للتحديد |
IntVar() |
ربط حالة كل خانة اختيار |
get() |
معرفة إن كان المستخدم حدّد الخيار أم لا |
command |
تنفيذ فعل عند الضغط على الزر |

