🧭 الدرس الخامس من Tkinter: مربعات القوائم (Listbox)

🎯 الهدف من Listbox:

تعلم كيفية استخدام عنصر Listbox لعرض قائمة خيارات يمكن للمستخدم اختيار عنصر منها (أو أكثر).

🧭 الدرس الخامس من Tkinter: مربعات القوائم (Listbox)

🧩 ما هو الـ Listbox؟

هو عنصر واجهة رسومية يُستخدم لعرض مجموعة من العناصر داخل نافذة، ويمكن للمستخدم اختيار عنصر واحد أو أكثر منها.


🛠️ إنشاء Listbox بسيط:

✨ الكود:

import tkinter as tk

# إنشاء النافذة
root = tk.Tk()
root.title("مثال على Listbox")
root.geometry("300x300")

# قائمة العناصر
اللغات = ["Python", "JavaScript", "C++", "Java", "Go", "Rust"]

# إنشاء Listbox
listbox = tk.Listbox(root, selectmode=tk.SINGLE)  # يمكن تغيير SINGLE إلى MULTIPLE للاختيار المتعدد
listbox.pack(pady=10)

# إضافة العناصر إلى القائمة
for لغة in اللغات:
    listbox.insert(tk.END, لغة)

# دالة لجلب العنصر المحدد
def عرض_الاختيار():
    المختار = listbox.get(listbox.curselection())
    النتيجة.config(text=f"لقد اخترت: {المختار}")

# زر لعرض النتيجة
tk.Button(root, text="عرض اللغة المختارة", command=عرض_الاختيار).pack(pady=5)

# مكان عرض النتيجة
النتيجة = tk.Label(root, text="", fg="blue", font=("Arial", 12))
النتيجة.pack(pady=10)

# تشغيل التطبيق
root.mainloop()

✅ النقاط المهمة:

  • Listbox() ينشئ قائمة قابلة للتفاعل.
  • selectmode يمكن أن يكون:
    • SINGLE: اختيار عنصر واحد.
    • MULTIPLE: اختيار عدة عناصر.
  • listbox.get(listbox.curselection()) تُرجع العنصر الذي تم تحديده.


🧪 التمرين:

أنشئ تطبيقًا بلغة Python باستخدام Tkinter يعرض قائمة من الفواكه. عند اختيار فاكهة والضغط على زر "أضف إلى السلة"، يتم عرض الفاكهة المختارة في أسفل النافذة.


المتطلبات:

  1. نافذة تحتوي على:
    • عنوان مناسب.
    • Listbox فيه قائمة من الفواكه (مثل: تفاح، موز، برتقال...).
    • زر مكتوب عليه "أضف إلى السلة".
    • Label أسفل الزر يظهر اسم الفاكهة التي تم اختيارها.

💡 الحل:

import tkinter as tk

# إنشاء النافذة
window = tk.Tk()
window.title("سلة الفواكه")
window.geometry("300x300")

# قائمة الفواكه
الفواكه = ["تفاح", "موز", "برتقال", "عنب", "أناناس", "كيوي"]

# إنشاء Listbox
listbox = tk.Listbox(window, selectmode=tk.SINGLE)
for فاكهة in الفواكه:
    listbox.insert(tk.END, فاكهة)
listbox.pack(pady=10)

# دالة لإضافة الفاكهة إلى السلة
def اضف_إلى_السلة():
    try:
        المختارة = listbox.get(listbox.curselection())
        label_result.config(text=f"أضفت إلى السلة: {المختارة}")
    except:
        label_result.config(text="رجاءً اختر فاكهة أولاً.")

# زر لإضافة الفاكهة
button = tk.Button(window, text="أضف إلى السلة", command=اضف_إلى_السلة)
button.pack(pady=5)

# مكان عرض النتيجة
label_result = tk.Label(window, text="", fg="green", font=("Arial", 12))
label_result.pack(pady=10)

# تشغيل التطبيق
window.mainloop()

📌 ملاحظات إضافية:

  • يمكنك تعديل selectmode إلى MULTIPLE إذا أردت السماح باختيار أكثر من فاكهة.
  • جرب استبدال الفواكه بعناصر أخرى كتمرين إضافي.

إرسال تعليق

0 تعليقات