🎯 الهدف: تعلم كيفية استخدام عنصر Scale في Tkinter لتحديد قيمة رقمية باستخدام شريط تمرير أفقي أو عمودي.
🧱 ما هو Scale؟
عنصر واجهة رسومية يتيح للمستخدم تحديد قيمة رقمية من مدى محدد باستخدام شريط تمرير يمكن سحبه.
📌 الصيغة الأساسية:
scale = tk.Scale(root, from_=0, to=100, orient=tk.HORIZONTAL)
| الخاصية |
الوظيفة |
from_ |
أقل قيمة (بداية المدى) |
to |
أعلى قيمة (نهاية المدى) |
orient |
اتجاه الشريط (tk.HORIZONTAL أو tk.VERTICAL) |
length |
طول الشريط (اختياري) |
resolution |
خطوات التغيير (مثلاً 0.5 أو 1 أو 10) |
command |
دالة تنفذ عند تغيير القيمة |
✅ مثال عملي:
import tkinter as tk
def عرض_القيمة(value):
label.config(text=f"🔊 مستوى الصوت: {value}")
# النافذة
window = tk.Tk()
window.title("Scale مثال")
window.geometry("300x200")
# شريط تمرير الصوت
tk.Label(window, text="اختر مستوى الصوت:").pack(pady=10)
slider = tk.Scale(window, from_=0, to=100, orient=tk.HORIZONTAL, command=عرض_القيمة)
slider.pack()
# تسمية لعرض القيمة
label = tk.Label(window, text="🔊 مستوى الصوت: 0")
label.pack(pady=10)
window.mainloop()
🧾 ملخص سريع:
| الخاصية |
وظيفتها |
Scale |
شريط تمرير لتحديد القيم الرقمية |
from_ / to |
يحدد مدى القيم الممكنة |
orient |
الاتجاه (أفقي/عمودي) |
command |
دالة يتم استدعاؤها عند التغيير |
.get() |
للحصول على القيمة الحالية |
✅ التمرين: "تحديد درجة حرارة التكييف"
🎯 المطلوب:
- أنشئ نافذة تحتوي على
Scale أفقي يحدد درجة الحرارة من 16 إلى 30.
- أضف
Label يعرض درجة الحرارة المختارة بشكل مباشر عند تحريك الشريط.
- اجعل التغيير في الدرجات يتم على خطوات بمقدار 1 درجة فقط.
🧾 الحل الكامل:
import tkinter as tk
def تحديث_درجة_الحرارة(value):
label.config(text=f"🌡 درجة الحرارة: {value}°C")
# إنشاء النافذة
window = tk.Tk()
window.title("ضبط درجة حرارة التكييف")
window.geometry("350x200")
# عنوان
tk.Label(window, text="اختر درجة الحرارة:", font=("Arial", 12)).pack(pady=10)
# عنصر Scale لضبط درجة الحرارة
slider = tk.Scale(
window,
from_=16,
to=30,
orient=tk.HORIZONTAL,
resolution=1,
command=تحديث_درجة_الحرارة
)
slider.pack()
# تسمية لعرض القيمة الحالية
label = tk.Label(window, text="🌡 درجة الحرارة: 16°C", font=("Arial", 12))
label.pack(pady=10)
# تشغيل النافذة
window.mainloop()
💡 المفاهيم المستخدمة في هذا التمرين:
| المفهوم |
الاستخدام |
Scale |
إنشاء شريط تمرير للقيم الرقمية |
from_ و to |
تحديد أقل وأعلى درجة حرارة |
resolution=1 |
ضبط الخطوة إلى درجة واحدة |
command=... |
تحديث Label مباشرة عند التغيير |
.config() |
تحديث نص العنصر |