اذهب إلى المحتوى
  • 0

pandas _Treeview - Python Tkinter

Ahmed Ahmed64

السؤال

السلام عليكم

لديDataFrame

image.png.d116518593d64c0170c0a91510fb2678.png

أريد أن يتم عرضها على Treeview - Python Tkinter

هنا الأن بعد عرض الجدول أريد أن يتم عليه بعض الإضافات بطريقة يدوية ومن خلال Treeview أو بأي طريقة تكون مجدية

حيث أني أريد أضافة عمود رابع للسنة الدراسية وأحتاج أن أضيف السنة أمام كل صف في العمود الرابع بشكل يدوي

أريد توضيح كيف يمكن لي أن أقوم بهذه العملية

تم التعديل في بواسطة Ahmed Ahmed64
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

وعليكم السلام أخي أحمد،

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()

 

وهذه هي النتيجة: بحيث تحدد كل سطر تريده وتقوم بإضافة السنة التي تريدها:
image.png.40d98352235a6be80037cf6b7ea85244.png

وفي النهاية أتمنى أن تكون قد حلت مشكلتك، وأتمنى لك التوفيق.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...