🎯 نتعلم كيفية إدراج الصور (مثل PNG أو GIF) داخل نافذة Tkinter، وعرضها باستخدام عناصر مثل Label
أو Canvas
.
🧱 ما هو 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).
✅ التمرين: "تطبيق ترحيبي بصورة وشعار"
🎯 المطلوب:
- أنشئ نافذة فيها:
- صورة في الأعلى (مثل شعار).
- رسالة ترحيبية تحت الصورة.
- استخدم عنصر
Label
لعرض كل من الصورة والنص. - تأكد من أن الصورة تظهر بشكل سليم داخل النافذة.
📁 ملاحظة مهمة:
قبل تشغيل الكود، تأكد من وجود صورة في نفس مجلد الملف وسمّها:
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 تعليقات