🎯 الهدف أن تتعلم كيفية:
- تحديد صف من جدول Treeview.
- حذف الصف المحدد عند الضغط على زر.
✅ مثال عملي: حذف منتج من جدول المنتجات
نفترض أن لدينا جدول يعرض بيانات المنتجات، والمستخدم يمكنه تحديد صف معين ثم حذفه.
✅ الكود الكامل:
import tkinter as tk
from tkinter import ttk
# إنشاء النافذة
window = tk.Tk()
window.title("حذف صف من الجدول")
window.geometry("600x400")
# ========== جدول المنتجات ==========
tree = ttk.Treeview(window, columns=("product", "price", "quantity"), show="headings")
tree.heading("product", text="اسم المنتج")
tree.heading("price", text="السعر")
tree.heading("quantity", text="الكمية")
tree.pack(pady=20)
# إدخال بعض البيانات
products = [
("تفاح", "10", "50"),
("برتقال", "8", "30"),
("موز", "12", "40")
]
for product in products:
tree.insert("", tk.END, values=product)
# ========== زر الحذف ==========
def delete_selected():
selected_item = tree.selection()
if selected_item:
tree.delete(selected_item)
btn_delete = tk.Button(window, text="حذف الصف المحدد", command=delete_selected)
btn_delete.pack(pady=10)
window.mainloop()
🧠 شرح مختصر:
| السطر | الوظيفة |
|---|---|
tree.selection() |
يُعيد الصف/الصفوف المحددة من الجدول. |
tree.delete(item_id) |
يحذف الصف حسب الـ ID المعطى. |
📝 ملاحظات:
- إذا لم يتم تحديد صف، لن يحدث شيء (يمكنك لاحقًا إضافة رسالة تحذيرية).
- يمكن توسيع الوظيفة لاحقًا لحذف عدة صفوف.
✅ التمرين: إدارة قائمة موظفين مع إمكانية حذف موظف محدد
🎯 المطلوب:
صمّم واجهة تحتوي على:
- جدول يعرض الموظفين (الاسم - الوظيفة - القسم).
- زر عند الضغط عليه يتم حذف الموظف المحدد من الجدول.
✅ الحل الكامل:
import tkinter as tk
from tkinter import ttk
# إنشاء النافذة
window = tk.Tk()
window.title("إدارة الموظفين")
window.geometry("600x400")
# ========== إنشاء الجدول ==========
tree = ttk.Treeview(window, columns=("name", "role", "department"), show="headings")
tree.heading("name", text="الاسم")
tree.heading("role", text="الوظيفة")
tree.heading("department", text="القسم")
tree.column("name", width=180)
tree.column("role", width=150)
tree.column("department", width=150)
tree.pack(pady=20)
# ========== بيانات مبدئية ==========
employees = [
("محمد عبد الله", "محاسب", "المالية"),
("منى سعيد", "مبرمجة", "التقنية"),
("سعيد عمر", "مدير", "الإدارة"),
("أحمد يوسف", "مصمم", "التصميم")
]
for emp in employees:
tree.insert("", tk.END, values=emp)
# ========== زر الحذف ==========
def delete_selected():
selected = tree.selection()
if selected:
tree.delete(selected)
btn_delete = tk.Button(window, text="حذف الموظف المحدد", command=delete_selected)
btn_delete.pack(pady=10)
window.mainloop()
✅ ماذا ستتعلم من هذا التمرين؟
| المهارة | التطبيق |
|---|---|
استخدام Treeview |
لعرض بيانات الموظفين |
استخدام selection() |
لتحديد الصف المطلوب حذفه |
استخدام delete() |
لحذف الصف المحدد من الجدول |
💡 تطوير إضافي:
إذا رغبت لاحقًا، يمكن إضافة:
- رسالة تأكيد قبل الحذف.
- منع الحذف إذا لم يتم تحديد صف.
- زر لتعديل بيانات الموظف.

