🎯 الفكرة:
في هذا الدرس سنتعلم كيف نستخدم عنصر Scale في Tkinter لعمل شريط تمرير يمكن من خلاله للمستخدم تغيير حجم الخط المستخدم في Label مباشرةً.
✅ الكود التطبيقي:
import tkinter as tk
# إنشاء النافذة
root = tk.Tk()
root.title("تغيير حجم الخط")
root.geometry("400x250")
# === Label لتجريب حجم الخط ===
sample_text = tk.Label(root, text="جرب تغيير حجم الخط", font=("Arial", 16))
sample_text.pack(pady=20)
# === دالة لتحديث حجم الخط بناءً على قيمة السلايدر ===
def update_font_size(value):
size = int(value)
sample_text.config(font=("Arial", size))
# === عنصر Scale لتحديد الحجم ===
font_scale = tk.Scale(
root,
from_=8,
to=48,
orient="horizontal",
label="اختر حجم الخط",
command=update_font_size
)
font_scale.set(16) # القيمة الابتدائية
font_scale.pack(pady=20)
# تشغيل النافذة
root.mainloop()
🧠 شرح العناصر:
| الكود | الوظيفة |
|---|---|
Scale |
عنصر منزلق (Slider) لاختيار قيمة رقمية |
orient="horizontal" |
يجعل السلايدر أفقي الشكل |
command=update_font_size |
يتم استدعاء الدالة عند تحريك السلايدر |
update_font_size(value) |
تغير حجم خط الـ Label حسب القيمة |
🎯 استخدامات هذا الدرس:
- إنشاء أدوات تحكم مرئية لتغيير الإعدادات.
- تعديل السمات (كالخط أو الحجم أو اللون) بشكل مباشر.
- التعامل مع عناصر Scale لتمكين المستخدم من تخصيص التطبيق.
📝 التمرين:
أنشئ تطبيق Tkinter يحتوي على:
- Label يعرض كلمة:
اختبر الخط - Scale لتغيير حجم الخط
- Scale آخر لتغيير لون الخط (تدرج بين الأسود والرمادي)
✅ الحل الكامل مع الشرح:
import tkinter as tk
# إنشاء النافذة الرئيسية
root = tk.Tk()
root.title("تجربة حجم الخط ولونه")
root.geometry("500x300")
# إنشاء Label لعرض النص
label = tk.Label(root, text="اختبر الخط", font=("Arial", 20))
label.pack(pady=20)
# دالة لتحديث حجم الخط
def update_font_size(value):
size = int(value)
label.config(font=("Arial", size))
# دالة لتحديث اللون (بتدرج رمادي)
def update_font_color(value):
gray = int(value)
hex_gray = f"#{gray:02x}{gray:02x}{gray:02x}" # تحويل إلى لون رمادي في نظام HEX
label.config(fg=hex_gray)
# Scale لحجم الخط
font_size_scale = tk.Scale(root, from_=10, to=50, orient="horizontal", label="حجم الخط", command=update_font_size)
font_size_scale.set(20)
font_size_scale.pack()
# Scale للون الخط (0 = أسود ، 255 = أبيض)
font_color_scale = tk.Scale(root, from_=0, to=255, orient="horizontal", label="درجة اللون الرمادي", command=update_font_color)
font_color_scale.set(0)
font_color_scale.pack()
# تشغيل التطبيق
root.mainloop()
💡 شرح سريع:
| العنصر | الوصف |
|---|---|
update_font_size |
تغير حجم الخط مباشرة حسب قيمة Scale |
update_font_color |
يحوّل القيمة إلى لون رمادي باستخدام HEX ويغير لون النص |
gray = int(value) |
يأخذ القيمة من 0 إلى 255 |
f"#{gray:02x}{gray:02x}{gray:02x}" |
توليد تدرج رمادي بلغة الألوان الست عشرية |

