📌 ما سنتعلمه في هذا الدرس:
- كيفية تحميل وعرض الصور داخل نافذة Tkinter.
- استخدام
PhotoImage
لعرض الصور. - التعامل مع صيغ الصور المدعومة.
- كيفية إدراج الصور في عناصر مثل
Label
,Button
.
🖼️ عرض صورة باستخدام Label
Tkinter يدعم الصور بصيغ .gif
, .png
باستخدام الكائن PhotoImage
. لعرض صورة:
import tkinter as tk
# إنشاء النافذة
root = tk.Tk()
root.title("عرض صورة")
root.geometry("300x300")
# تحميل الصورة (يفضل أن تكون PNG أو GIF)
الصورة = tk.PhotoImage(file="python_logo.png")
# عرضها داخل Label
label = tk.Label(root, image=الصورة)
label.pack()
root.mainloop()
ملاحظة: تأكد أن ملف الصورة في نفس مجلد السكربت.
📌 إضافة صورة إلى زر (Button)
يمكنك إضافة صورة للزر باستخدام نفس الطريقة:
button = tk.Button(root, image=الصورة, command=lambda: print("تم الضغط!"))
button.pack()
🧠 ملاحظات مهمة:
- الصور يجب أن تبقى في متغير (مثل
photo
) طوال مدة عرضها. - إذا وضعت الصورة داخل دالة بدون ربطها بمتغير عام، قد لا تظهر (لأنها تُمسح من الذاكرة).
- استخدم مكتبة PIL (Pillow) لعرض صور بصيغ أخرى مثل JPEG (سنشرح ذلك لاحقًا).
🧪 التمرين التطبيقي: عرض صورة مع زر
📋 المطلوب:
- أنشئ نافذة باستخدام Tkinter.
- اعرض صورة في منتصف النافذة باستخدام
Label
. - أضف زرًا أسفل الصورة.
- عند الضغط على الزر، يتم طباعة جملة:
"تم الضغط على الزر"
في الطرفية.
✅ الحل الكامل:
import tkinter as tk
# إنشاء النافذة
root = tk.Tk()
root.title("تمرين عرض صورة")
root.geometry("400x400")
# تحميل الصورة (تأكد أن الصورة باسم 'python_logo.png' وفي نفس المجلد)
photo = tk.PhotoImage(file="python_logo.png")
# عرض الصورة داخل Label
image_label = tk.Label(root, image=photo)
image_label.pack(pady=20)
# زر أسفل الصورة
def عند_الضغط():
print("تم الضغط على الزر")
زر = tk.Button(root, text="اضغط هنا", command=عند_الضغط)
زر.pack()
# تشغيل التطبيق
root.mainloop()
📝 ملاحظات:
- تأكد من وجود صورة باسم
python_logo.png
في نفس المجلد. - يمكنك تغيير اسم الصورة أو مسارها حسب الحاجة.
- استخدم صورة بصيغة
.png
أو.gif
لتعمل بشكل مباشر في Tkinter.
0 تعليقات