🎓 الدرس 17 من Tkinter: التعامل مع مربعات السحب (Spinbox)

الهدف من هذا الدرس هو تعلم كيفية استخدام عنصر التحكم Spinbox في Tkinter لاختيار قيمة رقمية أو نص من قائمة.

🎓 الدرس 17 من Tkinter: التعامل مع مربعات السحب (Spinbox)

📌 ما هو Spinbox؟

هو عنصر واجهة رسومية يتيح للمستخدم:

  • اختيار قيمة من مجموعة محددة مسبقًا.
  • عن طريق السحب (السهم لأعلى أو لأسفل) أو كتابة القيمة يدويًا.

🧱 الصيغة الأساسية:

spin = tk.Spinbox(root, from_=0, to=10)

أو:

spin = tk.Spinbox(root, values=("أحمر", "أخضر", "أزرق"))

✅ مثال 1: اختيار رقم

import tkinter as tk

window = tk.Tk()
window.title("Spinbox رقمي")
window.geometry("250x150")

spin = tk.Spinbox(window, from_=1, to=10)
spin.pack(pady=20)

def عرض_القيمة():
    print("القيمة المختارة:", spin.get())

tk.Button(window, text="عرض", command=عرض_القيمة).pack()

window.mainloop()

✅ مثال 2: اختيار من قائمة ألوان

import tkinter as tk

window = tk.Tk()
window.title("Spinbox نصي")
window.geometry("250x150")

spin = tk.Spinbox(window, values=("أحمر", "أخضر", "أزرق", "أصفر"))
spin.pack(pady=20)

def عرض_اللون():
    print("اللون المختار:", spin.get())

tk.Button(window, text="عرض اللون", command=عرض_اللون).pack()

window.mainloop()

📌 خصائص إضافية:

الخاصية الاستخدام
from_ بداية المجال العددي
to نهاية المجال
values قائمة من القيم (نصوص أو أرقام)
state يمكن أن تكون "readonly" لمنع الكتابة


✅ التمرين: "اختيار عدد تذاكر الحجز"

🎯 المطلوب:

  1. أنشئ نافذة تحتوي على Spinbox لاختيار عدد التذاكر (من 1 إلى 10).
  2. أضف زرًا مكتوبًا عليه "تأكيد الحجز".
  3. عند الضغط على الزر، تظهر رسالة في الطرفية تحتوي على عدد التذاكر المحجوزة.

🧾 الحل الكامل:

import tkinter as tk

# إنشاء النافذة
window = tk.Tk()
window.title("نموذج حجز تذاكر")
window.geometry("300x200")

# عنوان
tk.Label(window, text="اختر عدد التذاكر:", font=("Arial", 12)).pack(pady=10)

# Spinbox من 1 إلى 10
spin = tk.Spinbox(window, from_=1, to=10, width=5)
spin.pack()

# دالة عند الضغط على الزر
def تأكيد_الحجز():
    عدد = spin.get()
    print(f"تم حجز {عدد} تذكرة.")

# زر التأكيد
tk.Button(window, text="تأكيد الحجز", command=تأكيد_الحجز).pack(pady=20)

# تشغيل النافذة
window.mainloop()

💡 ما تعلمته من التمرين:

العنصر الوظيفة
Spinbox يتيح اختيار رقم من مجال محدد
get() يستخدم لجلب القيمة الحالية من Spinbox
Button تنفيذ أمر عند الضغط على الزر

إرسال تعليق

0 تعليقات