وعليكم السلام أخي أحمد،
1. في البداية نقوم باستيراد المكاتب الضرورية للعمل:
import tkinter as tk
from tkinter import ttk
import pandas as pd
2. سأقوم بتشكيل جدول DataFrame بشكل يشبه مثالك وأنت لك حرية التعديل:
data = {
'رقم الطالب': [11101, 11102, 11103],
'الاسم': ['أشرف', 'علي', 'عزام'],
'العلامة': [65, 79, 62]
}
df = pd.DataFrame(data)
ملاحظة: في حال أردت قراءته من ملف يدعى "students.csv":
df = pd.read_csv('students.csv')
3.نقوم بإعداد واجهة Tkinter:
root = tk.Tk()
root.title("إضافة السنوات الدراسية")
4.نقوم بإعداد الـ Treeview بالأعمدة المطلوبة:
columns = ('رقم الطالب', 'الاسم', 'العلامة', 'السنة الدراسية')
tree = ttk.Treeview(root, columns=columns, show='headings')
for col in columns:
tree.heading(col, text=col)
tree.column(col, width=100)
5.نقوم الآن بإضافة البيانات إلى Treeview:
for index, row in df.iterrows():
tree.insert("", index, values=list(row))
6.لتنظيم الكود، سأقوم بإنشاء وظيفة لإضافة السنة الدراسية لكل صف:
def add_year():
selected_item = tree.selection()[0]
year = year_entry.get()
tree.set(selected_item, 'السنة الدراسية', year)
7. نقوم بإنشاء حقل لإضافة السنة لكل صف:
year_label = tk.Label(root, text="أدخل السنة الدراسية:")
year_label.pack(side=tk.LEFT)
year_entry = tk.Entry(root)
year_entry.pack(side=tk.LEFT)
add_button = tk.Button(root, text="إضافة", command=add_year)
add_button.pack(side=tk.LEFT)
tree.pack(expand=True, fill='both')
8. وفي النهاية نقوم بتشغيل الواجهة التي قمنا بإنشائها السطر التالي:
root.mainloop()
وهذه هي النتيجة: بحيث تحدد كل سطر تريده وتقوم بإضافة السنة التي تريدها:
وفي النهاية أتمنى أن تكون قد حلت مشكلتك، وأتمنى لك التوفيق.