🖼️ الدرس 11 من Tkinter: إضافة الصور باستخدام PhotoImage

الهدف من هذا الدرس هو تعلم كيفية إضافة صورة إلى واجهة المستخدم في Tkinter باستخدام تنسيق .png أو .gif.
🖼️ الدرس 11 من Tkinter: إضافة الصور باستخدام PhotoImage

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

Tkinter يدعم فقط تنسيقي PNG و GIF بشكل مباشر. لعرض صور بصيغ مثل JPG، يجب استخدام مكتبة PIL (سنتحدث عنها لاحقًا).


🧪 مثال تطبيقي:

📌 المطلوب:

إضافة صورة داخل نافذة واجهة، ووضع نص تحتها.

🗂️ ملاحظة:

ضع صورة PNG باسم example.png في نفس مجلد ملف السكربت.


✅ الكود:

import tkinter as tk

# إنشاء النافذة
root = tk.Tk()
root.title("عرض صورة")
root.geometry("300x350")

# تحميل الصورة (يجب أن تكون PNG أو GIF)
الصورة = tk.PhotoImage(file="example.png")

# إضافة الصورة إلى واجهة
تسمية_صورة = tk.Label(root, image=الصورة)
تسمية_صورة.pack(pady=10)

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

# تشغيل البرنامج
root.mainloop()

📝 شرح الكود:

العنصر الشرح
PhotoImage(file="...") تحميل صورة من الملف.
Label(..., image=...) إنشاء تسمية تحتوي على الصورة.
pack() لعرض العناصر في النافذة.

⚠️ تنبيه:

  • تأكد من وجود الصورة في نفس مجلد ملف Python.
  • الصورة يجب أن تكون بصيغة .png أو .gif.


🎯 التمرين:

أنشئ واجهة رسومية تحتوي على:

  1. صورة في أعلى النافذة.
  2. عنوان ترحيبي أسفل الصورة.
  3. زر "إغلاق" أسفل العنوان يقوم بإغلاق النافذة عند الضغط عليه.

🧪 المتطلبات:

  • احفظ صورة بصيغة .png باسم logo.png في نفس مجلد السكربت.
  • تأكد أن الصورة ليست كبيرة جدًا (يفضل 200×200 بكسل أو أقل).

✅ الحل:

import tkinter as tk

# إنشاء النافذة
root = tk.Tk()
root.title("واجهة ترحيبية بالصور")
root.geometry("300x400")

# تحميل الصورة
الصورة = tk.PhotoImage(file="logo.png")

# عرض الصورة في واجهة
label_image = tk.Label(root, image=الصورة)
label_image.pack(pady=15)

# عنوان ترحيبي
label_text = tk.Label(root, text="أهلاً بك في تطبيقي", font=("Arial", 16))
label_text.pack(pady=10)

# زر إغلاق
btn_exit = tk.Button(root, text="إغلاق", command=root.destroy)
btn_exit.pack(pady=20)

# تشغيل الواجهة
root.mainloop()

📌 ملاحظات:

  • استخدم PhotoImage لعرض الصورة.
  • استخدم pack() مع pady لتنسيق المسافات.
  • الأمر root.destroy يُستخدم لإغلاق التطبيق عند الضغط على الزر.

إرسال تعليق

0 تعليقات