تعلم كيفية استخدام عنصر Listbox لعرض قائمة من العناصر التي يمكن للمستخدم اختيار واحد أو أكثر منها.
🧩 ما هو Listbox
؟
هو عنصر رسومي في Tkinter يسمح بعرض قائمة من العناصر، ويمكن للمستخدم اختيار عنصر واحد أو عدة عناصر منها حسب الإعدادات.
✅ إنشاء Listbox:
import tkinter as tk
root = tk.Tk()
root.title("مثال على Listbox")
# إنشاء Listbox
listbox = tk.Listbox(root, height=5)
listbox.pack(pady=10)
# إضافة عناصر إلى القائمة
العناصر = ["Python", "JavaScript", "Java", "C++", "Go"]
for عنصر in العناصر:
listbox.insert(tk.END, عنصر)
root.mainloop()ع
🛠️ أنواع الاختيار في Listbox:
يمكنك تحديد نوع الاختيار:
النوع | الوصف |
---|---|
SINGLE |
اختيار عنصر واحد فقط |
MULTIPLE |
اختيار عدة عناصر (بزر Ctrl) |
EXTENDED |
اختيار مجموعة متتابعة |
BROWSE |
شبيه بـ SINGLE (الوضع الافتراضي) |
مثال:
listbox = tk.Listbox(root, selectmode=tk.MULTIPLE)
📥 الحصول على العناصر المحددة:
selected_indices = listbox.curselection()
for index in selected_indices:
print("العنصر:", listbox.get(index))
🧪 مثال كامل:
import tkinter as tk
def عرض_الاختيارات():
المختارة = listbox.curselection()
النتائج = [listbox.get(i) for i in المختارة]
result_label.config(text="تم اختيار: " + ", ".join(النتائج))
root = tk.Tk()
root.title("اختيار لغات برمجة")
root.geometry("300x300")
tk.Label(root, text="اختر لغات البرمجة التي تعرفها:").pack(pady=5)
listbox = tk.Listbox(root, selectmode=tk.MULTIPLE)
لغات = ["Python", "JavaScript", "Java", "C#", "C++", "Go"]
for لغة in لغات:
listbox.insert(tk.END, لغة)
listbox.pack()
tk.Button(root, text="عرض الاختيارات", command=عرض_الاختيارات).pack(pady=10)
result_label = tk.Label(root, text="")
result_label.pack()
root.mainloop()
📌 ملاحظات:
- يمكنك استخدام
listbox.delete()
لحذف عنصر. - استخدم
listbox.size()
لمعرفة عدد العناصر. - يمكنك تمرير Scrollbar لسهولة التصفح في القوائم الطويلة.
🧪 التمرين التطبيقي:
🔹 المطلوب:
أنشئ واجهة رسومية تحتوي على:
- عنصر
Listbox
يحتوي على قائمة من الفواكه. - زر عند الضغط عليه يعرض اسم الفاكهة التي قام المستخدم باختيارها.
- حقل
Label
لعرض النتيجة.
✅ الحل الكامل:
import tkinter as tk
def عرض_الفاكهة_المختارة():
# الحصول على العنصر المختار
المختارة = listbox.curselection()
if المختارة:
الفاكهة = listbox.get(المختارة[0])
النتيجة.config(text=f"أنت اخترت: {الفاكهة}")
else:
النتيجة.config(text="لم تقم باختيار أي فاكهة!")
# نافذة التطبيق
root = tk.Tk()
root.title("اختيار الفاكهة")
root.geometry("300x250")
# عنوان
tk.Label(root, text="اختر فاكهة من القائمة:").pack(pady=10)
# قائمة الفواكه
listbox = tk.Listbox(root)
فواكه = ["تفاح", "موز", "برتقال", "عنب", "كيوي", "رمان"]
for فاكهة in فواكه:
listbox.insert(tk.END, فاكهة)
listbox.pack()
# زر عرض الاختيار
tk.Button(root, text="اعرض الفاكهة المختارة", command=عرض_الفاكهة_المختارة).pack(pady=10)
# حقل النتيجة
النتيجة = tk.Label(root, text="", fg="green")
النتيجة.pack()
root.mainloop()
✅ ما ستتعلمه من التمرين:
- كيفية التعامل مع
Listbox
. - كيفية جلب العنصر المحدد.
- كيفية عرض النتيجة بطريقة تفاعلية.
0 تعليقات