الرجاء مراجعة وتصحيح الكود لو وجد خطأ
أحتاج من الشفرة أن تقوم بالنسخ من أداة Treeview
حيث حاولت بجميع الطرق التي أعرفها ولاكن لم ينجح أمر النسخ
الأن سأرسل الشفرة الخاصة بالأداة وكود النسخ واللصق الرجاء المراجعة والتحقق من كتابة الكود
class App(ctk.CTk,tk.Tk):
def __init__(self):
super().__init__()
ctk.set_appearance_mode("light")
ctk.set_default_color_theme("blue")
self.geometry("600x500")
self.title("Tk example")
self.columnconfigure(0, weight = 1)
self.rowconfigure(0, weight = 1)
self.Frame1 = ctk.CTkFrame(self , border_width = 1,border_color= "#ff6c0b",fg_color = "#FFFFFF")
self.Frame1.grid(row=0, column=0, pady=(5, 5),padx=(5, 5), sticky="ewsn")
self.Frame1.columnconfigure(0, weight = 1)
self.Frame1.rowconfigure(0, weight = 1)
#Treeview
self.tree = ttk.Treeview(self.Frame1)
self.tree.grid(row=0, column=0, padx=(5, 5), pady=(5, 5),sticky='ewn')
self.tree.bind('<Button-3>', self.popup_menu)
# القائمة
self.popup1 = tk.Menu(self.tree, tearoff=0)
self.popup1.add_command( command=self.it_copy, label="Copy")
self.popup1.add_command( command=self.it_paste, label="paste")
# النسخ
def it_copy(self):
item = self.tree.selection()[0]
self.clipboard_clear()
self.clipboard_append(self.tree.item(item, option='text'))
# اللصق
def it_paste(self):
self.text = root.clipboard_get()
self.tree.insert("", "end", text=self.text)
# إظهر القائمة
def popup_menu(self,event):
self.tree.identify_row(event.y)
self.popup1.post(event.x_root, event.y_root)
app = App()
app.mainloop()
أنا أقوم بفتح ملف excel وأقوم بتحويلة إلى pd.DataFrame
ومن ثم أتعامل مع هذه DataFrame وأقوم بجلب عمود فقط وأقوم بعد ذلك بعرضة على أداة Treeview
وهذا الجزء الخاص بهذه العملية
def ruN_FILENAME(self):
if hasattr(self, 'file_name') and self.file_name:
self.df = pd.read_excel(self.file_name,sheet_name=self.sh_t,header=None)
self.A = self.df.iloc[8::2, [0]]
self.A1 = pd.DataFrame(self.A )
self.tree["column"]=list(self.A1.columns)
self.tree["show"] = "headings"
for column in self.tree["column"]:
self.tree.heading(column , text=column)
df_rows = self.A1.to_numpy().tolist()
for row in df_rows:
self.tree.insert("" , "end" , values = row)
حيث أصل إلى مرحلة العرض على أداة Treeview و تظهر النتيجة عليها
وعند محاولة نسخ سجل تظهر القائمة بدون مشاكل ولاكن عند الضغط لا يستجيب النسخ