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

Ahmed Ahmed64

الأعضاء
  • المساهمات

    222
  • تاريخ الانضمام

  • تاريخ آخر زيارة

كل منشورات العضو Ahmed Ahmed64

  1. السلام عليكم كيف أستطيع دعم الاتجاه RTL على مكتبة customtkinter أريد قلب الواجهة للعربية هل هذا ممكن أي أن يكون العمود 0 ناحية يمين الشاشة
  2. السلام عليكم من خلال العنوان أردت أن أسأل عن إسم الدالة أو الوظيفة التي من خلالها بمجرد الكتابة يتنفذ أمر البحث مباشرة لنفترض أن لدينا أداة Treeview بها مجموعة كبيرة من السجلات مثلا وأحتاج من خلال عمود معين أن أبحث في فيه أن إسم من خلال أداة Entry بمجرد كتابة حرف تتم الفلترة مباشرة
  3. أستاذي المعذرة إن أكثرت عليك بالأسئلة فعلا النسخ واللصق يعمل على الشجرة ولاكن أستاذي جرب أن تنسخ تم تلصق في مفكرة على الجهاز سوف تلاحظ أن الأسم بين القوسين لاتزال قائمة فما الحل في ذلك
  4. أستاذي أرجو أن ترسل لي الكود كامل لم أفهم أين الخطأ لم ينجح كود اللصق والنسخ معي لو سمحت إذا نجح الأمر معك قم بتعديله على الكود وإرسله لي
  5. حسنا أخي إليك ملف الشفرة كاملة مع ملف اكسل للتجريب عليه test_dG.rar
  6. نعم أخي كما ذكرت عند الإضافة يدويا وهذه كانت تجربتي الأولى للكود يعمل بدون مشاكل ولاكن عند إستخدام الأكسل لايعمل لايقوم لا بالنسخ و لا اللصق هل من حل حيث قمت بمعالجة بسيطة على هذا السطر self.tree.insert("" , "end" , values = row) قمت بتعديله هكذا self.tree.insert("" , "end" , text = row ,values = row) وعند تجربة النسخ واللصق في مكان أخر من الجهاز مثلا على المفكرة يظهر اللصق بهذه الطريق { السلام عليكم } أي يظهر ما بين هذه الأقواس هل من معالجة لهذا الكود ملاحظة عند إستحدام الكود بهذا الشكل self.tree.insert("" , "end" , text = row) يمكن النسخ واللصق بشكل طبيعي وأيضا بها مشكلة { } لاكن السجلات في أداة Treeview فعلا موجودة ويمكن تحديدها ولاكن القيمة غير ظاهرة للمستخدم أي لأيمكن رؤيتها بالعين
  7. السلام عليكم أيهما الأفضل والأقوى في التعامل ودعمها للغة العربية CustomTkinter أو ttkbootstrap
  8. الرجاء مراجعة وتصحيح الكود لو وجد خطأ أحتاج من الشفرة أن تقوم بالنسخ من أداة 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 و تظهر النتيجة عليها وعند محاولة نسخ سجل تظهر القائمة بدون مشاكل ولاكن عند الضغط لا يستجيب النسخ
  9. لم أفهم الرد أخي كيف أحذفهم قبل الطباعة الرجاء التوضيح أكثر
  10. جيد أخي الكود يعمل ولاكن هناك مشكلة بسيطة عند النسخ واللصق يظهر النص بين هذه الأقواس { نص }
  11. self.popup = tk.Menu(self, tearoff=0) self.popup.add_command(label="Copy", command=lambda: self.copy_item()) self.popup.add_command(label="Paste", command=lambda: self.paste_item()) self.tree.bind("<Button-3>", self.show_popup) def copy_item(self): item = self.tree.selection()[0] self.clipboard_clear() self.clipboard_append(self.tree.item(item, option="text")) def paste_item(self): self.text = root.clipboard_get() self.tree.insert("", "end", text=self.text) def show_popup(self,event): row = self.tree.identify_row(event.y) if row: self.tree.selection_set(row) self.popup.post(event.x_root, event.y_root)
  12. البيانات مدخلة فعلا وأستطيع النسخ من أداة ولصقها في مكان أخر القيمة فعلا موجودة ولاكن لا تظهر للعين
  13. for index, row in self.A.iterrows(): self.tree.insert('', 'end', text=row[0]) بهذه الكيفية يتم الأدراج إلى أداة Treeview ولاكن لاتظهر للعين وفي الحقيقة حقول موجودة وأستطيع النسخ منها الأن المشكلة أن العمود غير ظاهر للعين
  14. نعم أخي ولاكن أواجه مشكلة الأن حيث كنت قد عملت كود نسخ ولصق من هذه الأداة وكانت الامور جيدة عندما كان الإدراج تجريبي بهذه الطريق self.tree.insert("", "end", text="Item 1") self.tree.insert("", "end", text="Item 2") self.tree.insert("", "end", text="Item 3") ولاكن عندما قمت بإدراج العمود من خلال DataFrame تظهر قائمة النسخ واللصق ولاكن لا يتنفذ أمر النسخ لا أعلم ما هو مصدر الخطأ
  15. السلام عليكم أرجو تصحيح هذا الكود حيث أريد إدراج عمود من DataFrame إلى أداة Treeview for index, row in self.A.iterrows(): self.tree.insert('', 'end', text=(row[0],))
  16. def func(): var1 = 'Hola' var2 = 'Hola2' return dict(var1=var1, var2=var2) print(func()) من المثال السابق لو أردت أن أستخدم قيمة من هذه القائمة هل أقوم باستدعائها هكذا A = dict(var1)
  17. أخي هل لك بمثال توضيحي لذلك
  18. هل من الممكن أن تقوم الدالة باسترجاع قيمة أكثر من متغير واحد ( return )
  19. السلام عليكم لدي هذه الشفرة def File_dialog(self): self.filename = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main", title="Open file okay?", filetypes=(("text files", "*.xlsx"),("all files", "*.*"))) return self.filename حيث أن مسار الرابط يحفظ في self.filename def PRINT_FILENAME(self): print(self.filename) قمت بوضع الشفرة الأولى في زر والشفرة الثانية في زر أخر سؤالي الأن ////// عند الضغط على الزر الثاني سوف يحدث خطأ أكيد لأن لم يتم تخزين قيمة في self.filename هل من طريقة أو تصحيح للتأكيد على اختيار الملف أولا حتى لا يحدث خطأ
  20. أستاذي لم يكن هذا سؤال يبدو أن السؤال لم يكن مفهوم لديك سؤالي من خلال شيفرة النسخ واللصق كيف أضيف عليهم أداة الإدخال Entry
  21. نعم أخي لقد نجحت الشفرة وفي الحقيقة احتجت في الوراثة من التصنيف customtkinter لأني استخدمت هذه المكتبة في تصميم الواجهة جزاك الله خيراً أستاذي هل من الممكن التعديل عليه قليلا فقد كنت أحاول ولاكن دون جدوى أحتاج للتعديل على الشفره لكي تتمشى أيضا مع أداة tk.Entry
  22. self.tree = ttk.Treeview(self.Frame_C) self.tree.grid(row=0, column=0, sticky='nsew') self.tree.insert("", "end", text="Item 1") self.tree.insert("", "end", text="Item 2") self.tree.insert("", "end", text="Item 3") self.popup = tk.Menu(self, tearoff=0) self.popup.add_command(label="Copy", command=lambda: self.copy_item()) self.popup.add_command(label="Paste", command=lambda: self.paste_item()) self.tree.bind("<Button-3>", self.show_popup) ttk.Treeview داخل فريم self.Frame_C و self.Frame_C داخل فريم self.Frame_Basis و self.Frame_Basis ترث من self مسمى الكلاس app class App(ctk.CTk,tk.Tk): def __init__(self): super().__init__()
  23. استفسار أستاذي بخصوص هذا السطر popup.post(event.x_root, event.y_root) استبدلت root بكلمة self التي تعود على البرنامج ولاكن جدث خطأ AttributeError: 'Event' object has no attribute 'x_self'
  24. شكرا أخي هل تقصد هذا الكود له علاقة بباقي الكود الذي أرسلته حضرتك أم كود أخر لأن في الحقيقة القائمة تظهر ولا يتم تنفيذ أمر النسخ كما حدث معي في المرة الأولى def show_popup_menu(self,event): self.popup_menu.post(event.x_root, event.y_root)
  25. السلام عليكم استخدمت في تصميم الواجهة مكتبة tkinter لدي أداة Treeview حاولت كتابة شفرة تقوم بإظهار قائمة النسخ واللصق عند الضغط بالماوس self.popup_menu = tk.Menu(self.frame, tearoff=0) self.popup_menu.add_command(label="Cut", command=lambda: self.entry1.event_generate("<<Cut>>")) self.popup_menu.add_command(label="Copy", command=lambda : self.entry1.event_generate("<<Copy>>")) self.popup_menu.add_command(label="Paste", command=lambda: self.entry1.event_generate("<<Paste>>")) self.tree.bind("<Button-3>", self.show_popup_menu) def show_popup_menu(self,event): self.popup_menu.post(event.x_root, event.y_root) المشكلة أن القائمة تظهر عند الضغط ولاكن لا يتم النسخ من السجل أو الصف المحدد في Treeview أرجو توضيح أن يتم التعديل في كتابة الكود حاولت مع هذه الشفرة ولم تنجح def popup(self, event): iid = self.tree.identify_row(event.y) if iid: self.tree.selection_set(iid) self.contextMenu.post(event.x_root, event.y_root) else: pass
×
×
  • أضف...