🧾 ما هو الـ Spinbox
؟
هو عنصر واجهة رسومية يسمح للمستخدم باختيار قيمة عددية (أو اختيار من قائمة) عن طريق أسهم زيادة/نقصان.
✅ الشكل العام:
spinbox = tk.Spinbox(parent, from_=الحد_الأدنى, to=الحد_الأقصى)
🛠 مثال عملي:
import tkinter as tk
window = tk.Tk()
window.title("مثال على Spinbox")
window.geometry("250x150")
# إنشاء Spinbox من 1 إلى 10
spin = tk.Spinbox(window, from_=1, to=10, width=10)
spin.pack(pady=10)
# دالة عرض القيمة
def عرض_القيمة():
tk.Label(window, text=f"اخترت: {spin.get()}").pack()
# زر لعرض القيمة
btn = tk.Button(window, text="عرض القيمة", command=عرض_القيمة)
btn.pack(pady=10)
window.mainloop()
🧠 ملاحظات:
- يمكنك استخدام
values=("أحمر", "أخضر", "أزرق")
بدلاً منfrom_
وto
إذا أردت قائمة غير رقمية. - يمكن تخصيص عرض الخط، الألوان، الحجم وغيرها باستخدام خصائص إضافية مثل:
font
,fg
,bg
.
✅ تطبيقات شائعة:
- اختيار عدد العناصر.
- ضبط الوقت أو القيم الرقمية.
- التحكم في الإعدادات ضمن مدى محدد.
🧪 تمرين تطبيقي – آلة تحديد كمية الطلب
المطلوب:
صمّم واجهة تحتوي على:
- عنوان "طلب منتج"
- Spinbox يحدد كمية المنتج من 1 إلى 20
- زر "حساب السعر"
- عند الضغط على الزر، يتم حساب السعر الكلي بناءً على أن سعر القطعة الواحدة = 15 ريال ويُعرض للمستخدم.
✅ الحل المقترح:
import tkinter as tk
def حساب_السعر():
الكمية = int(spinbox.get())
السعر_القطعة = 15
السعر_الإجمالي = الكمية * السعر_القطعة
النتيجة.config(text=f"السعر الإجمالي: {السعر_الإجمالي} ريال")
# نافذة البرنامج
window = tk.Tk()
window.title("طلب منتج")
window.geometry("300x200")
# عنوان
عنوان = tk.Label(window, text="طلب منتج", font=("Arial", 16))
عنوان.pack(pady=10)
# Spinbox لتحديد الكمية
spinbox = tk.Spinbox(window, from_=1, to=20, width=5, font=("Arial", 12))
spinbox.pack(pady=5)
# زر لحساب السعر
زر_الحساب = tk.Button(window, text="حساب السعر", command=حساب_السعر)
زر_الحساب.pack(pady=10)
# مكان لعرض النتيجة
النتيجة = tk.Label(window, text="", font=("Arial", 12), fg="green")
النتيجة.pack(pady=5)
window.mainloop()
📝 نصائح إضافية:
- يمكنك جعل السعر متغيرًا بإضافة حقل إدخال.
- جرّب تغيير عدد القطع وحدود Spinbox.
- أضف صورة أو تصميم بسيط لتجميل النافذة.
0 تعليقات