🎯 الهدف من Listbox:
تعلم كيفية استخدام عنصر 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 يعرض قائمة من الفواكه. عند اختيار فاكهة والضغط على زر "أضف إلى السلة"، يتم عرض الفاكهة المختارة في أسفل النافذة.
✅ المتطلبات:
- نافذة تحتوي على:
- عنوان مناسب.
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 تعليقات