🎓 الدرس 28 من Tkinter: إدراج الصور داخل الواجهة باستخدام PhotoImage

🎯 نتعلم كيفية إدراج الصور (مثل PNG أو GIF) داخل نافذة Tkinter، وعرضها باستخدام عناصر مثل Label أو Canvas.

🎓 الدرس 28 من Tkinter: إدراج الصور داخل الواجهة باستخدام PhotoImage

🧱 ما هو PhotoImage؟

هي فئة داخل Tkinter تُستخدم لتحميل وعرض الصور من نوع:

  • PNG
  • GIF
    (Tkinter لا يدعم JPEG مباشرة — نستخدم مكتبات إضافية مثل PIL لذلك لاحقًا)

📌 الطريقة الأساسية لعرض صورة:

from tkinter import PhotoImage

image = PhotoImage(file="image.png")
label = tk.Label(window, image=image)
label.pack()

⚠️ مهم: يجب حفظ الكائن image في متغير (حتى لو لم تستخدمه لاحقًا) لأن Python قد يحذفه تلقائيًا إذا لم يحتفظ به متغير.


✅ مثال عملي:

📂 الملفات المطلوبة:

ضع صورة باسم logo.png في نفس مجلد ملف Python.

import tkinter as tk
from tkinter import PhotoImage

# إنشاء النافذة
window = tk.Tk()
window.title("عرض صورة في Tkinter")
window.geometry("400x300")

# تحميل الصورة (PNG فقط)
image = PhotoImage(file="logo.png")

# عرض الصورة داخل عنصر Label
image_label = tk.Label(window, image=image)
image_label.pack(pady=10)

# نص تحت الصورة
tk.Label(window, text="هذه صورة باستخدام Tkinter", font=("Arial", 12)).pack()

window.mainloop()

💡 ملاحظات:

النقطة التوضيح
PhotoImage() لتحميل صورة من ملف
Label(..., image=...) لعرض الصورة داخل نافذة Tkinter
image = ... يجب حفظها في متغير لمنع حذفها تلقائيًا

⚠️ هل تريد عرض صور JPEG أو تغيير حجم الصورة؟

سنتعلم ذلك لاحقًا باستخدام مكتبة Pillow (PIL).


✅ التمرين: "تطبيق ترحيبي بصورة وشعار"

🎯 المطلوب:

  1. أنشئ نافذة فيها:
    • صورة في الأعلى (مثل شعار).
    • رسالة ترحيبية تحت الصورة.
  2. استخدم عنصر Label لعرض كل من الصورة والنص.
  3. تأكد من أن الصورة تظهر بشكل سليم داخل النافذة.

📁 ملاحظة مهمة:

قبل تشغيل الكود، تأكد من وجود صورة في نفس مجلد الملف وسمّها: welcome.png
ويفضل أن تكون الصورة صغيرة (مثلاً 200x200 بكسل) ومن نوع PNG.


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

import tkinter as tk
from tkinter import PhotoImage

# إنشاء النافذة
window = tk.Tk()
window.title("مرحبا بك")
window.geometry("400x400")

# تحميل الصورة (PNG فقط)
logo = PhotoImage(file="welcome.png")

# عرض الصورة باستخدام Label
img_label = tk.Label(window, image=logo)
img_label.pack(pady=20)

# رسالة ترحيبية تحت الصورة
message = tk.Label(window, text="مرحباً بك في تطبيقي البسيط باستخدام Tkinter",
                   font=("Arial", 14), fg="darkgreen")
message.pack(pady=10)

window.mainloop()

💡 شرح سريع:

العنصر الوظيفة
PhotoImage() تحميل صورة PNG فقط
Label(..., image=...) عرض الصورة داخل واجهة المستخدم
Label(..., text=...) عرض نص ترحيبي

🖼️ النتيجة:

نافذة بسيطة بها صورة شعار في الأعلى، وتحته رسالة ترحيبية أنيقة.

إرسال تعليق

0 تعليقات